ZeroJudge J178: 手遊廣告 (Advertisement)

華華在瀏覽社群軟體時經常看到一款手遊廣告,遊戲內容是玩家控制一個角色不斷挑戰怪物,只要玩家角色的戰力比怪物高,就可以打敗怪物並吸收牠的戰力值;反之,如果玩家角色的戰力和怪物相同或較怪物低,玩家角色就會死亡,遊戲也就結束了。

請你撰寫一個程式,給定玩家角色依序遭遇的怪物戰力值,計算結束遊戲時玩家角色的戰力值為何。

範例測資

範例輸入範例輸出
輸入第一列有兩個整數 M (1 ≤ M ≤ 300) 和 A (1 ≤ A ≤ 10000),代表有幾隻怪物以及小華的初始戰力值。
第二列有 M 個整數 Ti (1 ≤ Ti ≤ 6000, i = 1, 2, 3, …, M),為小華依序會遭遇的第 i 個怪物戰力值。
請輸出華華結束遊戲時的戰力值。
5 20
30 60 90 120 150
20
4 32
31 61 91 215
215
3 10000
10 20 30
10060

解題思路

使用一個布林值確認還需不需要做戰力值的判斷,預設為True,如果遇到相同或是等級更高的怪物,則將布林值設為 False 並且之後收資料的時候不做判斷。

範例程式碼-ZeroJudge J178: 手遊廣告 (Advertisement)

#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 J178
//Dr. SeanXD

發佈留言