一、问题链接
CSP 201403-2 窗口
二、参考代码
#include <bits/stdc++.h>
using namespace std;
struct window{
int x1,y1,x2,y2,num,priority;
window(int a,int b,int c,int d,int e,int f):
x1(a),y1(b),x2(c),y2(d),num(e),priority(f){}
};
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
int n,m,x1,y1,x2,y2;
cin>>n>>m;
vector<window> v;
for(int i=0;i<n;i++){
cin>>x1>>y1>>x2>>y2;
v.push_back(window(x1,y1,x2,y2,i+1,i+1));
}
while(m--){
sort(v.begin(),v.end(),
[](const window& v1,const window& v2){
return v2.priority<v1.priority;
});
cin>>x1>>y1;
auto p=find_if(v.begin(),v.end(),
[x1,y1](const window &v1){
return x1>=v1.x1 and x1<=v1.x2 and y1>=v1.y1 and y1<=v1.y2;
});
if(p==v.end()){
cout<<"IGNORED"<<"\n";
continue;
}else{
cout<<v[p-v.begin()].num<<"\n";
if(p==v.begin()) continue;
v[p-v.begin()].priority=n+1;
for(auto &i:v){
i.priority--;
}
}
}
return 0;
}