題目連結:
題目大意:
給定一正整數N(N ≦ 100),代表有N個州。接下來有兩個僅包含大小寫字母的字串,代表兩個候選人的名字。
再接著的N行,開頭各有一數字S(S ≦ 100),代表此州的選舉人票。其後緊接兩個數字 V1、V2(V1、V2 ≦ 10 ^ 8 且 V1 ≠ V2),分別對應到兩個候選人在此州的票數。
如果某個候選人在某州的票數比另一個人多,則他將會獲得那個州的全部選舉人票。
簡言之,本題就是要模擬美國的選舉人制度,但是情況較為簡潔(沒有失信選舉人、州民票數一樣等情況)。
求最後哪一候選人當選,輸出其名字;如果平手,則輸出「Tie」。
解題思維:
這題用 Java 和 Python 很吃虧(目前沒人用這兩個語言 AC 過),因為輸入資料太多了。
而 C++ 內建的 cin 、 cout 平時會比 C 的 scanf 、 printf 慢,所以要最佳化一下(方式、原因參見這篇大大的文章)。
在此再次強調,當關閉 cin、cout 與系統的同步時,請不要再與其他輸入輸出的函數混用。很容易出事(會有 BUG)。
解決了輸入的問題,這題大致上就沒什麼特別問題了。