天天看点

蓝桥杯算法提高VIP-铺地毯题目题解代码

题目

题目链接

题解

思维。

对于某一个点而言,后覆盖的垫子编号将会被输出,因此我们倒序找第一个覆盖该点的即可,这个垫子一定是最后摞在最上层的垫子。

这道题是我刚学算法,算法入门期间做的一道题,当时对于这个做法大受震撼,想想已经过去一年了,好快。

代码

#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;
}