简单模拟题。
思路
枚举每一个地毯,因为后面的会覆盖前面的,所以从正序枚举。如果要求的点的坐标在当前地毯上,则将答案赋值为当前地毯编号。
最后输出答案。
那如果这个点没有地毯呢?答案初始设为 \(-1\),这样没有地毯覆盖的话,答案不会改变,这样输出答案就会是 \(-1\)。
注意:
- 记得赋初始值。
- 后面的两个数 \(g\) 和 \(k\) 是地毯长宽而不是结束点。
AC CODE
#include <bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int a[N],b[N],g[N],k[N];
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
scanf("%d%d%d%d",a+i,b+i,g+i,k+i);
}
int x,y,ans=-1;
cin>>x>>y;
for(int i=1;i<=n;i++){
if(x>=a[i]&&x<=a[i]+g[i]&&y>=b[i]&&y<=b[i]+k[i])ans=i;
}
cout<<ans<<endl;
return 0;
}
标签:答案,int,题解,P1003,&&,地毯
From: https://www.cnblogs.com/xdh2012/p/17854963.html