最开始的想法是开一个很大的数组,每次覆盖使该点存的值为序号,后面发现,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);
}