luogu 1003

先把各条地毯的数据存储下来。

然后从后往前找到的第一条包含(x,y)的地毯编号就是答案。

#include"cstdio"
#include"cctype"
const int maxn=100001;
int read()
{
    int c,x=0; while(!isdigit(c=getchar()));
    while(x=x*10+c-'0',isdigit(c=getchar()));
    return x;
}
int a[maxn],b[maxn],g[maxn],k[maxn];
int main()
{
    int n=read();
    for(int i=1; i<=n; i++)
        a[i]=read(),b[i]=read(),g[i]=read(),k[i]=read();
    int x=read(),y=read(),ans=-1;
    for(int i=n; i>=1; i--)
        if(a[i]<=x && a[i]+g[i]>=x && b[i]<=y && b[i]+k[i]>=y)
        {
            ans=i;
            break;
        }
    printf("%d",ans);
    return 0;
}

 

posted @ 2018-01-24 11:45  TrassBlose  阅读(94)  评论(0编辑  收藏  举报