2011年8月1日 星期一

[ACM 10812] Beat the Spread!


 這是以前寫過的題目,放在這裡紀錄一下

內容 :

超級盃又來了,為了打發中場休息時間,大家就來下注最後的結果會如何。大家下注的目標為兩隊最後的分數和,或者兩隊最後分數差的絕對值。

給你這2個值,你能推出這2隊最後的得分是多少嗎?

 

 

輸入說明 :

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

輸出說明 :

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

範例輸入 :help


4 40 20 20 40 5 1 100 1

 

範例輸出 :


30 10 impossible 3 2 impossible
 



/**********************************************************************************/
/*  Problem: c004 "Beat the Spread!" from ACM 10812                               */
/*  Language: C                                                                   */
/*  Result: AC (22ms, 362KB) on ZeroJudge                                         */
/*  Author: diiuuli520 at 2008-08-11 00:00:35                                     */
/**********************************************************************************/
 
 
#include<stdio.h>
#include<stdlib.h>
  
int main(void)   
{    
    int a,b,c,i,x,y,k=0;
    while( scanf("%d",&a)!=EOF  ) {     
        for(i=0;i<a;i++){
           k=0; 
           scanf("%d%d",&b,&c);
           x=b-c;
           if(x<0)  k=1;
           y=x/2;
           if(x%2!=0) k=1;
           
           if(k==0)
             printf("%d %d\n",y+c,y);
           else
             printf("impossible\n");      
    }    } 
    return(0);    
}

沒有留言:

張貼留言