2013年1月4日 星期五

[ZJ] d984. 棄保效應


內容 :
台 灣的選舉法令禁止各陣營及媒體在投票日前的一個星期內公佈民調結果,其中最重要的一個因素是要避免「棄保效應」。所謂的「棄保效應」是指選民在得知自己所 支持的候選人當選無望時,有可能會把票投給其他比較可能當選的人,以免浪費了自己的一票。假設某選舉有三位候選人來競選一個職位,在「棄保效應」發揮到極 致的情形下,所有民調第三名的候選人的支持者都會把票投民調第二名的候選人,也就是他們都會「棄三保二」。給你 A, B, C 三個候選人的支持者人數,請判斷誰會當選?
輸入說明 :
輸入有若干筆測試資料,每筆一行。每行有三個以空白隔開的整數 a, b, c 代表候選人 A, B, C 的支持者人數,0 ≤ a, b, c ≤ 2147483647。你可以假設在「棄保效應」之後,不會有相同票數的情形發生。
輸出說明 :
請輸出將會當選的人是 A, B 或 C。
範例輸入 :
3 4 51 3 5
範例輸出 :
BC
提示 :
出處 :
板橋高中教學題 (管理:snail)

刷題目要緊,先不寫漂亮了

/**********************************************************************************/
/*  Problem: d984 "棄保效應" from 板橋高中教學題                       */
/*  Language: C                                                                   */
/*  Result: AC (2ms, 260KB) on ZeroJudge                                          */
/*  Author: morris1028 at 2011-06-01 20:08:39                                     */
/**********************************************************************************/


#include<stdio.h>
struct data{
    long long x, y;
}D[3], t;
main() {
    while(scanf("%lld %lld %lld", &D[0].x, &D[1].x, &D[2].x) == 3) {
        D[0].y = 0, D[1].y = 1, D[2].y = 2;
        if(D[0].x > D[2].x) t = D[0], D[0] = D[2], D[2] = t;
        if(D[1].x > D[2].x) t = D[1], D[1] = D[2], D[2] = t;
        if(D[0].x > D[1].x) t = D[0], D[0] = D[1], D[1] = t;
        D[1].x += D[0].x;
        if(D[1].x > D[2].x)    printf("%c\n",D[1].y + 'A');
        else printf("%c\n",D[2].y + 'A');
    }
    return 0;
}

沒有留言:

張貼留言