2011年4月30日 星期六

c004: Beat the Spread!

內容 :
    超級盃又來了,為了打發中場休息時間,大家就來下注最後的結果會如何。大家下注的目標為兩隊最後的分數和,或者兩隊最後分數差的絕對值。
給你這2個值,你能推出這2隊最後的得分是多少嗎?

輸入說明 :
    輸入的第一列有一個整數,代表以下有多少組測試資料。 每組測試資料一列,有2個大於等於 0 的整數 s, d,s 代表比賽結束時2隊分數的總和, d 代表比賽結束時2隊分數差的絕對值。

輸出說明 :
    對每組測試資料輸出一列,包含2個整數代表比賽結束時這2隊的分數,分數大的在前。如果沒有這樣的分數,請輸出「 impossible」。 請記得:美式足球的分數一定是大於等於 0 的整數。

範例輸入 :
4
40 20
20 40
5 1
100 1

範例輸出 :
30 10
impossible
3 2
impossible

程式碼:
#include<stdio.h>

int main()
{
    int n,i,s,d,a,b;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d%d",&s,&d);
        a = s+d;
        if(a%2==1)
        {
            printf("impossible\n");
            continue;
        }
        a = a>>1;
        b = s - a;
        if(b < 0)
        {
            printf("impossible\n");
            continue;
        }
        printf("%d %d\n",a,b);
    }
    return 0;
}



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

1 則留言: