2011年4月30日 星期六

b077: C. 不公平的人,是誰?

內容 :
    自從周杰倫出了新專輯「牛仔很忙」後,大郭和小郭就時常幻想自己是牛仔,終於有一天,大郭找來了兩把水槍要和小郭決鬥。
    可是玩了幾場以後,小郭全身都溼透了,大郭卻是一身乾爽,隱忍許久的小郭終於發難了!
小郭:「我都噴不到你………」
大郭:「那大概是你技術差吧?」
小郭:「騙人~騙人~你一定有作弊吧?」
    雖然小郭什麼都比大郭差(諸如智力、運動神經等…),但是如果在事前大郭準備給小郭的水槍比較差的話,那代表大郭是從一開始就有心把這場遊戲策畫成不公平的壞人。
    剛好路過的你,被吵吵鬧鬧的兩人抓去當裁判。

輸入說明 :
    輸入檔中有許多組輸入(一組輸入代表某一次比賽時某隊伍的提交紀錄),每組輸入佔一個區塊,每一組輸入裡,會以一組整數M、N做為開始,當M=0且N=0 時代表輸入結束。其中M代表大郭的水槍射程,N代表小郭的水槍射程,注意為求精確,所有射程的長度單位均為奈米。
    因為大郭弄來的水槍是22世紀的產物,故水槍的射程非常非常遠,最長可以到達4611686018427387904奈米(射程必為一非負整數)。

輸出說明 :
    對每一組測試資料,你應該輸出一列,該列從小郭的角度出發(小郭雖然比較笨,但還是很奸詐的!),判斷這是不是一場公平的比賽(對於小郭來說,只要大郭的射程不比小郭大,就是一場公平的遊戲)。
    若是對小郭有利的遊戲,則輸出「Fair」,若不是,則輸出「Unfair」

範例輸入 :
500 800
500 500
1099511627776 4611686014132420609
4611686018427387904 1099511627776
0 0

範例輸出 :
Fair
Fair
Fair
Unfair

程式碼 :
#include <stdio.h>

int main()
{
    int i,len1,len2,win;
    char s1[20],s2[20];
    
    while(scanf("%s%s",s1,s2)==2)
    {
        if(s1[0]=='0' && s2[0]=='0')
            break;
        win = 1;
        for(i=0;s1[i]!='\0';i++);
        len1 = i;
        for(i=0;s2[i]!='\0';i++);
        len2 = i;
        if(len1 > len2)
        {
            printf("Unfair\n");
            continue;
        }
        else if(len1 < len2)
        {
            printf("Fair\n");
            continue;
        }
        for(i=0;i<len1;i++)
        {
            if(s1[i] > s2[i])
            {
                win =0;
                break;
            }
            else if(s1[i] < s2[i])
                break;
        }
        if(win)
            printf("Fair\n");
        else
            printf("Unfair\n");
    }
    return 0;
}



http://zerojudge.tw/ShowProblem?problemid=b077

沒有留言:

張貼留言