公式
B - 山道ハイキング / Mountain Trail Hiking 解説
by
B - 山道ハイキング / Mountain Trail Hiking 解説
by
kyopro_friends
ハイキングをシミュレーションしながら、これまでの満足度の最大値を記録すればよいです。
チェックポイント \(1\) に到達した時点の満足度は \(S_1\) であり、チェックポイント \(i-1\) にいる状態からチェックポイント \(i\) に移動すると、満足度は \(S_i-C_{i-1}\) 増えます。
実装例 (C++)
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin >> n;
vector<int>s(n), c(n-1);
for(int i=0; i<n; i++) cin >> s[i];
for(int i=0; i<n-1; i++) cin >> c[i];
long long ans = s[0], crr = s[0];
for(int i=1; i<n; i++){
crr += s[i] - c[i-1];
ans = max(ans, crr);
}
cout << ans << endl;
}
実装例 (Python)
N = int(input())
S = list(map(int, input().split()))
C = list(map(int, input().split()))
ans = S[0]
crr = S[0]
for i in range(1, N):
crr += S[i] - C[i-1]
ans = max(ans, crr)
print(ans)
投稿日時:
最終更新:
