齐齐哈尔建设网站,徐州模板建站系统,网站建设的模板,开发公司与物业公司的合同【Mc生存】插火把
题目描述
话说有一天 linyorson 在“我的世界”开了一个 n n n \times n nn 的方阵#xff0c;现在他有 m m m 个火把和 k k k 个萤石#xff0c;分别放在 ( x 1 , y 1 ) ∼ ( x m , y m ) (x_1, y_1) \sim (x_m, y_m) (x1,y1)∼(xm,ym) 和 …【Mc生存】插火把
题目描述
话说有一天 linyorson 在“我的世界”开了一个 n × n n \times n n×n 的方阵现在他有 m m m 个火把和 k k k 个萤石分别放在 ( x 1 , y 1 ) ∼ ( x m , y m ) (x_1, y_1) \sim (x_m, y_m) (x1,y1)∼(xm,ym) 和 ( o 1 , p 1 ) ∼ ( o k , p k ) (o_1, p_1) \sim (o_k, p_k) (o1,p1)∼(ok,pk) 的位置没有光并且没放东西的地方会生成怪物。请问在这个方阵中有几个点会生成怪物
P.S. 火把的照亮范围是 |暗|暗| 光 |暗|暗||暗|光| 光 |光|暗||光|光|火把|光|光||暗|光| 光 |光|暗||暗|暗| 光 |暗|暗|萤石 |光|光| 光 |光|光||光|光| 光 |光|光||光|光|萤石|光|光||光|光| 光 |光|光||光|光| 光 |光|光|输入格式
输入共 m k 1 m k 1 mk1 行。 第一行为 n , m , k n, m, k n,m,k。 第 2 2 2 到第 m 1 m 1 m1 行分别是火把的位置 x i , y i x_i, y_i xi,yi。 第 m 2 m 2 m2 到第 m k 1 m k 1 mk1 行分别是萤石的位置 o i , p i o_i, p_i oi,pi。
注可能没有萤石但一定有火把。
输出格式
有几个点会生出怪物。
样例 #1
样例输入 #1
5 1 0
3 3样例输出 #1
12提示
数据保证 1 ≤ n ≤ 100 1 \le n \le 100 1≤n≤100 1 ≤ m k ≤ 25 1 \leq mk \leq 25 1≤mk≤25 1 ≤ m ≤ 25 1 \leq m \leq 25 1≤m≤25 0 ≤ k ≤ 5 0 \leq k \leq 5 0≤k≤5。
#includeiostream
using namespace std;bool isvalid(int i,int n)
{if(i0in) {return true;}else{return false;}
}int main()
{int m,n,k;bool ground[101][101] {false};cin n m k;// int x[25],y[25],o[25],p[25];for(int ii0;iim;ii){int xi,yi;cin xi yi;//输入火把位置for(int i xi-3;ixi1;i){if(isvalid(i,n)) ground[i][yi-1] true;//横向照明}for(int i yi-3;iyi1;i){if(isvalid(i,n)) ground[xi-1][i] true;//纵向照明}if(isvalid(xi-2,n)isvalid(yi-2,n)) ground[xi-2][yi-2] true;if(isvalid(xi-2,n)isvalid(yi,n)) ground[xi-2][yi] true;if(isvalid(xi,n)isvalid(yi-2,n)) ground[xi][yi-2] true;if(isvalid(xi,n)isvalid(yi,n)) ground[xi][yi] true;}for(int i0;ik;i){int oi,pi;cin oi pi;for(int ioi-3;ioi1;i){for(int jpi-3;jpi1;j){if(isvalid(i,n)isvalid(j,n)) ground[i][j] true;}}}int sum 0;for(int i0;in;i){for(int j0;jn;j){if(!ground[i][j]) sum;// ground[i][j] ? cout 1 : cout 0;}// cout endl;}cout sum;return 0;
}