题解 | 铺地毯
铺地毯
https://www.nowcoder.com/practice/60d56feb871c41b3a9aa40d51ffd256c
#include<bits/stdc++.h>
using namespace std;
int main() {
int n;
int x,y;
cin>>n;
vector<int>a(n);
vector<int>b(n);
vector<int>g(n);
vector<int>k(n);
for(int i=0;i<n;i++){
cin>>a[i]>>b[i]>>g[i]>>k[i];
}
cin>>x>>y;
//因为地毯会覆盖,从数字大的下标开始遍历会获得满足条件的最上面的地毯
for(int j=n-1;j>=0;j--){
//判断该点在不在地毯上,a[i]<x<(a[i]+g[i]) ; <b[i]y<(b[i]+k[i])
if(x>=a[j] && x<=(a[j]+g[j]) && y>=b[j] && y<=(b[j]+k[j])){
//j范围是从0到n-1,地毯编号是从1到n
cout<<j+1;
return 0;
}
}
//没有满足的就输出-1
cout<<-1;
return 0;
}
查看15道真题和解析