蓝桥杯备考:枚举算法之铺地毯
P1003 [NOIP 2011 提高组] 铺地毯 - 洛谷 | 计算机科学教育新生态
题目告诉了我们后铺的地毯会覆盖掉之前铺的地毯,所以我们枚举的时候应该从最后一个地毯往前面枚举,
#include <iostream>
using namespace std;
const int N = 1e4+10;
int a[N],b[N],dx[N],dy[N];
int n;
int check(int x,int y)
{
for(int i = n;i>0;i--)
{
if(x>=a[i] && x<=dx[i] + a[i] && y>=b[i] && y<=b[i]+dy[i])
{
return i;
}
}
return -1;
}
int main()
{
cin >> n;
for(int i = 1;i<=n;i++)
{
cin >> a[i] >> b[i] >> dx[i] >> dy[i];
}
int x,y;
cin >> x >> y;
cout << check(x,y) << endl;
return 0;
}