AcWing 3198. 窗口(暴力模拟+map)
原题链接
简单
#include<iostream>
#include<cstring>
#include<map>
using namespace std;
typedef pair<int,int>pii;
typedef pair<pii,pii>piiii;
int n,m,flag[2599][1499];
map<int,piiii>mapp;
int main(){
cin>>n>>m;
memset(flag,-1,sizeof flag);
for(int i=1;i<=n;i++){
int x1,y1,x2,y2;
cin>>x1>>y1>>x2>>y2;
mapp[i]=make_pair(make_pair(x1,y1),make_pair(x2,y2));
for(int j=x1;j<=x2;j++) for(int k=y1;k<=y2;k++) flag[j][k]=i;
}
while(m--){
int x,y,ans;
cin>>x>>y;
ans=flag[x][y];
if(ans>0){
cout<<ans<<endl;
piiii t=mapp[ans];
for(int i=t.first.first;i<=t.second.first;i++)
for(int j=t.first.second;j<=t.second.second;j++)
flag[i][j]=ans;
}
else cout<<"IGNORED"<<endl;
}
return 0;
}