2011-06-01 22:12:26Morris
d984. 棄保效應
http://zerojudge.tw/ShowProblem?problemid=d984
內容 :
台灣的選舉法令禁止各陣營及媒體在投票日前的 一個星期內公佈民調結果,其中最重要的一個因素是要避免「棄保效應」。所謂的「棄保效應」是指選民在得知自己所支持的候選人當選無望時,有可能會把票投給 其他比較可能當選的人,以免浪費了自己的一票。假設某選舉有三位候選人來競選一個職位,在「棄保效應」發揮到極致的情形下,所有民調第三名的候選人的支持 者都會把票投民調第二名的候選人,也就是他們都會「棄三保二」。給你 A, B, C 三個候選人的支持者人數,請判斷誰會當選?
輸入說明
:
輸入有若干筆測試資料,每筆一行。每行有三個以空白隔開的整數 a, b, c 代表候選人 A, B, C 的支持者人數,0 ≤ a, b, c ≤ 2147483647。你可以假設在「棄保效應」之後,不會有相同票數的情形發生。
輸出說明
:
請輸出將會當選的人是 A, B 或 C。
範例輸入 :
3 4 5 1 3 5
範例輸出 :
B C
提示
:
出處
:
/**********************************************************************************/
/* 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;
}
上一篇:d881. 作業苦多