最开始的想法是开一个很大的数组,每次覆盖使该点存的值为序号,后面发现,c语言中不能搞这么大的数组。(此路不通)
后面参考了别人的代码,发现我只要判断所求点位于那个地毯区间就可以了。
顺便提醒一下,在坐标轴上是左下标,在数组上就可以认为是左上标。
下面附上AC代码
int main()
{
int n,i,j,x,y,jie=-1;
int a[100001],b[100001],c[100001],d[100001];
scanf("%d",&n);
for(i=1;i<=n;i++)scanf("%d %d %d %d",&a[i],&b[i],&c[i],&d[i]);
scanf("%d %d",&x,&y);
for(i=1;i<=n;i++)
{
if(x>=a[i]&&y>=b[i]&&x<=a[i]+c[i]&&y<=b[i]+d[i])jie=i;
}
printf("%d",jie);
}