申請SAE

如果您發現本博客的外觀很難看,那是因為部分外觀文件被中國.國家.防火.牆屏.蔽所致!
請翻~牆!

我的Wordpress博客的地址: http://zhuyf.tk/

2011年11月24日 星期四

[模擬]NOIP2011_Day1 鋪地毯 carpet 解題報告

題目連結:
Google Docs

【分析】
本題作為NOIP2011提高組Day1的第一題,水的不能再水了。剛一看上去,感覺很難,再一看,水爆了!直接從N號毯到1號毯 依次判斷每個毯的坐標,只要找到了就輸出並break,沒找到就輸出-1~

【我的代碼】
#include <iostream>
#include <cstdio>
#include <cstdlib>
using namespace std;
class CARPET
{
public:
    int x1,y1;
    int x2,y2;
}C[10001];

int N;
int X,Y;
void init()
{
    scanf("%d\n",&N);
    int x,y;
    for (int i=1;i<=N;i++)
    {
        scanf("%d %d %d %d\n",&C[i].x1,&C[i].y1,&x,&y);
        C[i].x2=C[i].x1+x;
        C[i].y2=C[i].y1+y;
    }
    scanf("%d %d\n",&X,&Y);
    return;
}

void work()
{
    for (int i=N;i>=1;i--)
    {
        if(C[i].x1<=X && C[i].x2>=X && C[i].y1<=Y && C[i].y2>=Y)
        {
            printf("%d\n",i);
            return;
        }
    }
    printf("-1\n");
}

int main()
{
    freopen("carpet.in","r",stdin);
    freopen("carpet.out","w",stdout);
    init();
    work();
    return 0;
}

沒有留言:

張貼留言