AcWing 4510. 寻宝!大冒险!
原题链接
简单
作者:
LYMY
,
2023-10-10 17:17:38
,
所有人可见
,
阅读 64
#include<iostream>
#define x first
#define y second
using namespace std;
typedef pair<int,int> PII;
const int N=1010,M=60,INF=1e8;
int n,L,S;
PII tree[N];
int b[M][M];
int main(){
scanf("%d%d%d",&n,&L,&S);
for(int i=0;i<n;i++)
scanf("%d%d",&tree[i].x,&tree[i].y);
int tc=0;
for(int i=S;i>=0;i--)
for(int j=0;j<=S;j++){
scanf("%d",&b[i][j]);
tc+=b[i][j];
}
int res=0;
for(int i=0;i<n;i++){
int sx=tree[i].x, sy=tree[i].y;
if(sx+S>L||sy+S>L) continue;
int cnt=0;
for(int j=0;j<n;j++){
int x=tree[j].x,y=tree[j].y;
if(x>=sx&&y>=sy&&x-sx<=S&&y-sy<=S){
if(!b[x-sx][y-sy]) cnt=-INF;
else cnt++;
}
}
if(cnt==tc) res++;
}
printf("%d",res);
return 0;
}