題目敘述
每筆資料第一行有兩個正整數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";
}
留言
張貼留言