//思路:通过四个数组将毯子的情况记录。然后用逆序的方法来找到最上面的一层毯子
上代码:
#include<bits/stdc++.h>
using namespace std;
int a[100050];
int b[100050];
int g[100050];
int k[100050];
int main()
{
int n,x, y;
cin >> n;
for (int i = 1; i <= n; i++)
{
cin >> a[i] >> b[i] >> g[i] >> k[i];
}
cin >> x >> y;
int ans = -1; //如果上面未曾覆盖直接输出为-1
for (int i = n; i >= 1; i--) //逆序查找
{
if ((x >= a[i] && x <= a[i] + g[i]) && (y >= b[i] && y <= b[i] + k[i])) //判断所寻找的点上面有没有毯子覆盖
{
ans = i; //如果有毯子,那么直接输出毯子的编号“i”
break; //求得毯子的编号以后,直接退出。
}
}
cout << ans << endl; //输出答案
return 0;
}
京公网安备 11010502036488号