[ACM]NOIP2011D1T1复现-铺地毯
逆向考虑即可解决
#include<iostream>
using namespace std;
const int maxn= 100000 +5;
int a[maxn][4];//0-x,1-y,2-x-length,3-y-length
int main(){
int n,flag=0;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i][0]>>a[i][1]>>a[i][2]>>a[i][3];
}
int x,y;
cin>>x>>y;
for(int i=n;i>0;i--)
{
if((a[i][0] + a[i][2] >= x) && (a[i][1] + a[i][3] >= y) && (a[i][0] <= x) && (a[i][1] <=y))
{
flag=i;
break;
}
else if(a[i][0]==x && a[i][1]==y)
{
flag=i;
break;
}
}
if(flag!=0) cout<<flag;
else cout<<-1;
return 0;
}
空谈误国,实干兴邦
个人博客: https://www.0error.net/