按顺序枚举地毯,判断点在不在地毯中,不断更新地毯序号即可
#include <iostream>
using namespace std;
const int N=1e4+10;
struct node
{
int a,b,g,k;
};
node p[N];
int main()
{
int n,x,y;
int ans=-1;
cin>>n;
for(int i=1;i<=n;i++) cin>>p[i].a>>p[i].b>>p[i].g>>p[i].k;
cin>>x>>y;
for(int i=1;i<=n;i++)
{
if(x>=p[i].a&&x<=p[i].a+p[i].g&&y>=p[i].b&&y<=p[i].b+p[i].k){
ans=i;
}
}
cout<<ans;
return 0;
}