Official
B - モンスター討伐 / Monster Slaying Editorial
by
B - モンスター討伐 / Monster Slaying Editorial
by
kyopro_friends
この問題はスタックを用いた実装の練習問題です。ですがこの問題にはより簡単な解法が存在します。
高橋君の初期攻撃力は \(0\) であるため、初期状態では強さが \(0\) のモンスターしか倒すことができません。そのようなモンスターを倒しても高橋くんの強さは増加しないため、結局高橋君が倒すことができるのは、強さが \(0\) のモンスター全てのみです。
よって、 \(D_i=0\) であるような \(i\) についての \(V_i\) の合計が答えとなります。計算量は \(O(N)\) です。
実装例 (C++)
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin >> n;
long long ans = 0;
for(int i=0; i<n; i++){
int d, v;
cin >> d >> v;
if(d == 0){
ans += v;
}
}
cout << ans << endl;
}
実装例 (Python)
N = int(input())
ans = 0
for _ in range(N):
D, V = map(int, input().split())
if D == 0:
ans += V
print(ans)
posted:
last update:
