题目
题目链接
题解
思维。
对于某一个点而言,后覆盖的垫子编号将会被输出,因此我们倒序找第一个覆盖该点的即可,这个垫子一定是最后摞在最上层的垫子。
这道题是我刚学算法,算法入门期间做的一道题,当时对于这个做法大受震撼,想想已经过去一年了,好快。
代码
#include<bits/stdc++.h>
using namespace std;
const int N = 1e4+10;
int a[N], b[N], g[N], k[N], aa, bb, n;
int main()
{
cin>>n;
for(int i = 1;i <= n;i ++) cin>>a[i]>>b[i]>>g[i]>>k[i];
cin>>aa>>bb;
for(int i = n;i >= 1;i --) {
if(aa >= a[i] && bb >= b[i] && aa <= a[i]+g[i] && bb <= b[i]+k[i]) {
cout<< i << endl;
return 0;
}
}
cout << -1 <<endl;
return 0;
}