LG. 1003 铺地毯

LG. 1003 铺地毯

题意分析

给出平面中地毯的左上角坐标和长宽,然后给出一点(x,y)。求此点最上面是哪个地毯的编号,若没被覆盖则输出-1.

将所有地毯的信息存在一个结构体中,由于后埔地毯在上面,在查询的时候,要倒着查询,若查询到就输出地毯编号,否则输出-1.

代码总览

#include <bits/stdc++.h>
#define nmax 100005

using namespace std;
struct mes{
    int x,y,xexd,yexd;
}item[nmax];
int main()
{

    int n;
    while(scanf("%d",&n) != EOF){
        for(int i = 0;i<n;++i){
            scanf("%d %d %d %d",&item[i].x,&item[i].y,&item[i].xexd,&item[i].yexd);
        }
        int x, y;
        bool isfind = false;
        scanf("%d %d",&x,&y);
        for(int i = n-1;i>=0;--i){
            if(x>=item[i].x && x<=item[i].x +item[i].xexd && y>=item[i].y && y<=item[i].y +item[i].yexd){
                printf("%d\n",i+1);
                isfind = true;
                break;
            }
        }
        if(!isfind) printf("-1\n");
    }
    return 0;
}
posted @ 2017-07-26 15:52  pengwill  阅读(124)  评论(0编辑  收藏  举报