题解 P1003 【铺地毯】
MaoHanKun
·
·
题解
#include<cstdio>//很多人都用二次数组做的,给你们一套新思路
using namespace std;
inline void in(int &s){//快读
char c=getchar();s=0;
while(c<'0' || c>'9') c=getchar();
while(c>='0' && c<='9'){
s=(s<<1)+(s<<3)+c-'0';
c=getchar();
}
}
int n,a,b,g,k,x,y,a1[10002],b1[10002],c1[10002],d1[10002],ans;
int main(){
in(n);
for(int i=0;i<n;++i){
in(a);in(b);in(g);in(k);
a1[i]=a;b1[i]=a+g;c1[i]=b;d1[i]=b+k;//求矩形上下边的Y值,左右边的x值
}
in(x);in(y);
for(int i=0;i<n;++i)
if(x>=a1[i] && x<=b1[i] && y>=c1[i] && y<=d1[i]) ans=i+1;//如果这点包括在矩形边界内,就替换。
if(ans>0) printf("%d",ans);
else printf("-1");
return 0;
}