思路
感觉是入门题,没用到算法。
我们从下往上叠地毯,那么我们从上往下数第一个覆盖这个坐标的地毯的编号就是答案了。
如果没有找到就输出-1;
代码
#include<bits/stdc++.h>
using namespace std;
struct X{
int a,b,g,k;
}mt[10005];
int main(){
int n,i,ans=-1,x,y;
scanf("%d",&n);
for(i=1;i<=n;i++){
scanf("%d%d%d%d",&mt[i].a,&mt[i].b,&mt[i].g,&mt[i].k);
}
scanf("%d%d",&x,&y);
for(i=n;i>=1;i--){
if(mt[i].a<=x&&x<=mt[i].a+mt[i].g&&mt[i].b<=y&&y<=mt[i].b+mt[i].k){
ans=i;
break;
}
}
cout<<ans;
return 0;
} 
京公网安备 11010502036488号