題目連結: https://zerojudge.tw/ShowProblem?problemid=d984

# 內容

台灣的選舉法令禁止各陣營及媒體在投票日前的一個星期內公佈民調結果,其中最重要的一個因素是要避免「棄保效應」。所謂的「棄保效應」是指選民在得知自己所支持的候選人當選無望時,有可能會把票投給其他比較可能當選的人,以免浪費了自己的一票。假設某選舉有三位候選人來競選一個職位,在「棄保效應」發揮到極致的情形下,所有民調第三名的候選人的支持者都會把票投民調第二名的候選人,也就是他們都會「棄三保二」。給你 A, B, C 三個候選人的支持者人數,請判斷誰會當選?

# 輸入

輸入有若干筆測試資料,每筆一行。每行有三個以空白隔開的整數 a, b, c 代表候選人 A, B, C 的支持者人數,0 ≤ a, b, c ≤ 2147483647。你可以假設在「棄保效應」之後,不會有相同票數的情形發生。

# 輸出

請輸出將會當選的人是 A, B 或 C。

# 解題思路

如果 1. A 已經比 B 和 C 的總和還多,2. 人數第二的 A 加上 B 或 C 成了第一,則輸出 A ,B 也一樣,如果不是 A 或 B 的話,就直接輸出 C。

# 程式碼

#include <iostream>
using namespace std;
int main()
{
    unsigned int a,b,c;
    while(cin>>a>>b>>c)
    {
        if(a>b+c||(c>a&&a>b&&a+b>c)||(b>a&&a>c&&a+c>b))
            cout<<"A";
        else if(b>a+c||(a>b&&b>c&&c+b>a)||(c>b&&b>a&&a+b>c))
            cout<<"B";
        else
            cout<<"C";
        cout<<endl;
    }
}
更新於 閱讀次數

用實際行動犒賞爆肝的我😀

Zrn Ye LinePay

LinePay