AcWing 3198. 窗口
原题链接
简单
作者:
CN059
,
2025-03-24 11:35:28
· 云南
,
所有人可见
,
阅读 1
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int main(){
vector<vector<int>> windows;
int N,M;
cin>>N>>M;
windows.resize(N, vector<int>(5)); // 增加一个元素存储编号
for(int i = N-1; i >= 0; i--){ // 逆序存储窗口
cin>>windows[i][0]>>windows[i][1]>>windows[i][2]>>windows[i][3];
windows[i][4] = N - i; // 存储原始编号
}
for(int i=0;i<M;i++){
int x=0,y=0;
cin>>x>>y;
bool iffind=false;
/*遍历数组,看看点击坐标命中哪个窗口*/
for(int j=0;j<windows.size();j++){
if(x>=windows[j][0]&&x<=windows[j][2]&&y>=windows[j][1]&&y<=windows[j][3]){
iffind=true;
cout<<windows[j][4]<<endl; // 输出原始编号
/*将点击的窗口移动到最顶层*/
vector<int> temp=windows[j];
for(int k=j;k>0;k--){
windows[k]=windows[k-1];
}
windows[0]=temp;
break;
}
}
if(!iffind)cout<<"IGNORED"<<endl;
}
return 0;
}