一开始我想复杂了,想的是每一个坐标是否被覆盖,但是实际上,我只需要按照输入存入左下角坐标、x轴长度、y轴长度,然后再次遍历看坐标(x,y)是否在所有地毯范围内即可,并且当找到第一个后还要继续找下去,因为要求的是覆盖在最上面的。
#include<bits/stdc++.h>
using namespace std;
int a[10001],b[10001],g[10001],k[10001];
int main()
{
int n,x,y,m=-1;
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i]>>b[i]>>g[i]>>k[i];
cin>>x>>y;
for(int i=1;i<=n;i++)
if(x>=a[i]&&x<=a[i]+g[i]&&y>=b[i]&&y<=b[i]+k[i])
m=i;
cout<<m;
return 0;
}