洛谷P1003铺地毯问题题解

洛谷P1003铺地毯题解


P1003 铺地毯原题地址
认真读完题后就容易做这道题了,同样,题型不难,考察认真读题的细心程度。第一次做题就把g,k两个表示的意思弄错了,后面又错了一次出现了RE,最核心的问题就在这儿,当毯子数量较多的时候,我们如果反向取值比较的话,就很容易得到最上面的地毯编号啦。话不多说,请看代码。不周之处,还请指正,谢谢!


/*
 * *洛谷P1003铺地毯问题
 * 2020 03 15
 * write by Miubai
 */
#include<stdio.h>

#define N 10000
int main(void){
    int i,n,x,y;
    int a[N],b[N],g[N],k[N];

    scanf("%d",&n);
    for(i = 0;i<n;i++)
        scanf("%d %d %d %d",&a[i],&b[i],&g[i],&k[i]);

    scanf("%d %d",&x,&y);
    while(n--){
        if(x>=a[n]&&x<=(a[n]+g[n])&&y>=b[n]&&y<=(b[n]+k[n])) {    //所求点要在a<x<a+g和b<y<b+k这个区间内,就像当于在地毯这个平面上;
            printf("%d",n+1);
            return 0;
        }
    }
    printf("-1");
    return 0;

}

已完结,谢谢查看!

猜你喜欢

转载自www.cnblogs.com/Miubai-blog/p/12501061.html