ZeroJudge J178: 手遊廣告 (Advertisement)

題目敘述

每筆資料第一行有兩個正整數M和A,分別代表會遇見幾個敵人和一開始的戰力值,第二行會有M個整數代表遇到的敵人戰力值。當遇到戰力值小於自己的敵人時,會將敵人的戰力值吸收,當遇到戰力值等同於或是大於自己的敵人時,遊戲結束,並輸出最後的戰力值。


範例輸入 #1

5 20

30 60 90 120 150

範例輸出 #1

20


範例輸入 #2

4 32

31 61 91 215

範例輸出 #2

215


範例輸入 #3

3 10000

10 20 30

範例輸出 #3

10060


解題思路

使用一個布林值確認還需不需要做戰力值的判斷。

解題程式碼如下 (僅供參考):

#include <iostream>
using namespace std;

int main() {
    cin.sync_with_stdio(0);
    cin.tie(0);
    int M, A;
    cin >> M >> A;
    bool stop = false;
    for (int i = 0; i<M; i++)
    {
        int tmp;
        cin >> tmp;
        if (A > tmp && !stop) A += tmp;
        else stop = true;
    }
    cout << A << "\n";
}

留言

這個網誌中的熱門文章

ZeroJudge M933: 邏輯電路

ZeroJudge A148: You Cannot Pass?!

ZeroJudge M932: 蜜蜂觀察