分析:
需要使用二维数组存储地毯的编号,后面的地毯编号覆盖前面的。
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; int a[11000][11000]={0}; int main(){ int x,y,n,d1,d2; scanf("%d",&n); for(int k=1;k<=n;k++) { scanf("%d%d%d%d",&x,&y,&d1,&d2); for(int i=x;i<=x+d1;i++) for(int j=y;j<=y+d2;j++) a[i][j]=k; } scanf("%d%d",&x,&y); if (a[x][y]==0)printf("-1"); else printf("%d\n",a[x][y]); return 0; }