[AtCoder] ABC 135 C – City Savers
問題
方針
\( i \) 番目の勇者が \( i \) 番目のモンスターを可能な限り倒し、\( i + 1 \) 番目のモンスターを可能な限り倒します。これを \( 1 \) 番目の勇者から順番にシミュレーションします。
コード
#include <bits/stdc++.h> using namespace std; typedef long long ll; int main() { int N; cin >> N; ll A[N], B[N]; for (int i = 0; i <= N; i++) { cin >> A[i]; } for (int i = 0; i < N; i++) { cin >> B[i]; } ll s = 0; for (int i = 0; i < N; i++) { s += min(A[i], B[i]); B[i] -= min(A[i], B[i]); A[i] -= min(A[i], B[i]); s += min(A[i + 1], B[i]); A[i+1] -= min(A[i + 1], B[i]); } cout << s << "\n"; return 0; }
ディスカッション
コメント一覧
まだ、コメントがありません