题目背景
初一党应该都知道......
题目描述
话说有一天 linyorson 在“我的世界”开了一个 n×n(n≤100) 的方阵,现在他有 mm 个火把和 kk 个萤石,分别放在 (x_1,y_1)...(x_m,y_m)(x1,y1)...(xm,ym) 和 (o_1,p_1)...(o_k,p_k)(o1,p1)...(ok,pk) 的位置,没有光或没放东西的地方会生成怪物。请问在这个方阵中有几个点会生成怪物?
P.S.火把的照亮范围是:
|暗|暗| 光 |暗|暗|
|暗|光| 光 |光|暗|
|光|光|火把|光|光|
|暗|光| 光 |光|暗|
|暗|暗| 光 |暗|暗|
萤石:
|光|光| 光 |光|光|
|光|光| 光 |光|光|
|光|光|萤石|光|光|
|光|光| 光 |光|光|
|光|光| 光 |光|光|
输入格式
输入共m+k+1行。
第一行为n,m,k。
第2到第m+1行分别是火把的位置xi yi。
第m+2到第m+k+1行分别是萤石的位置oi pi。
注:可能没有萤石,但一定有火把。
所有数据保证在int范围内。
输出格式
有几个点会生出怪物。
输入输出样例
输入 #15 1 0 3 3输出 #1
12
1 #include<bits/stdc++.h> 2 using namespace std; 3 int main(){ 4 int n,m,k,i,j,o,p,q,s,ans=0; 5 cin>>n>>m>>k; 6 int map[n+5][n+5]; 7 memset(map,0,sizeof(map)); 8 for(i=1;i<=m;i++){ 9 cin>>o>>p; 10 map[o+2][p]=1; 11 map[o][p+2]=1; 12 map[o-2][p]=1; 13 map[o][p-2]=1; 14 map[o+1][p]=1; 15 map[o+1][p+1]=1; 16 map[o+1][p-1]=1; 17 map[o][p+1]=1; 18 map[o][p]=1; 19 map[o][p-1]=1; 20 map[o-1][p]=1; 21 map[o-1][p+1]=1; 22 map[o-1][p-1]=1; 23 } 24 for(i=1;i<=k;i++){ 25 cin>>q>>s; 26 map[q-2][s-2]=1; 27 map[q-2][s-1]=1; 28 map[q-2][s]=1; 29 map[q-2][s+1]=1; 30 map[q-2][s+2]=1; 31 map[q-1][s-2]=1; 32 map[q-1][s-1]=1; 33 map[q-1][s]=1; 34 map[q-1][s+1]=1; 35 map[q-1][s+2]=1; 36 map[q][s-2]=1; 37 map[q][s-1]=1; 38 map[q][s]=1; 39 map[q][s+1]=1; 40 map[q][s+2]=1; 41 map[q+1][s-2]=1; 42 map[q+1][s-1]=1; 43 map[q+1][s]=1; 44 map[q+1][s+1]=1; 45 map[q+1][s+2]=1; 46 map[q+2][s-2]=1; 47 map[q+2][s-1]=1; 48 map[q+2][s]=1; 49 map[q+2][s+1]=1; 50 map[q+2][s+2]=1; 51 } 52 for(i=1;i<=n;i++){ 53 for(j=1;j<=n;j++){ 54 if(map[i][j]==0)ans++; 55 } 56 } 57 cout<<ans; 58 return 0; 59 }