题目需要记录每个窗口的编号和图层顺序,后按图层顺序从上到下进行检索,最后输出窗口编号
#include <stdio.h>
void click(int lev[],int N,int t) { //图层置顶函数
int i;
for(i=N;i>0;i--) {
lev[i]=lev[i-1];
}
lev[0]=t;
}
int main() {
int N,M;
scanf("%d %d",&N,&M);
int i,j;
int x[N][2],y[N][2],lev[N];
for(i=0;i<N;i++) {
scanf("%d %d %d %d",&x[i][0],&y[i][0],&x[i][1],&y[i][1]);
lev[i]=N-1-i; //lev[i]为窗口编号-1(第n号窗口存在,但lev[n]未定义)
}
for(j=0;j<M;j++) {
int X,Y,t=0;
scanf("%d %d",&X,&Y);
for(i=0;i<N;i++) {
if(X>=x[lev[i]][0]&&Y>=y[lev[i]][0]&&X<=x[lev[i]][1]&&Y<=y[lev[i]][1]) {
t=lev[i]+1;
click(lev,i,lev[i]);
break;
}
}
if(t) {
printf("%d\n",t);
}
else printf("IGNORED\n");
}
return 0;
}