逆序去做,最后的就是最上面的地毯。
#include <bits/stdc++.h>
using namespace std;
const int N=1e5+10;
struct node
{
int a,b,r,k;
}s[N];
int n;
int main()
{
cin>>n;
for(int p=1;p<=n;p++)
cin>>s[p].a>>s[p].b>>s[p].r>>s[p].k;
int x,y;cin>>x>>y;
for(int i=n;i>=1;i--)
{
if(x<=(s[i].a+s[i].r)&&x>=s[i].a&&y<=s[i].b+s[i].k&&y>=s[i].b)
{
cout<<i<<endl;
return 0;
}
}
cout<<"-1"<<endl;
return 0;
}