简单搜索。因为后放的地毯肯定在上面,所以只需要倒着搜索能“接住”点的地毯就行了。如果最后都没能“接住”就输出-1
#include <iostream>
using namespace std;
struct point{
int a,b,g,k;
}pt[100005];
int main(){
int i,n,x,y,flag=1;
cin>>n;
for(i=0;i<n;i++){
cin>>pt[i].a>>pt[i].b>>pt[i].g>>pt[i].k;
pt[i].g+=pt[i].a-1;
pt[i].k+=pt[i].b-1;
}
cin>>x>>y;
for(i=n-1;i>-1;i--){
if(pt[i].a<=x&&x<=pt[i].g&&pt[i].b<=y&&y<=pt[i].k){
cout<<i+1;
flag=0;
break;
}
}
if(flag)cout<<-1;
}