【AtCoder】ABC 448 B - Pepper Addiction

B - Pepper Addiction
AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online.
AtCoder
実行時間制限: 2 sec / メモリ制限: 1024 MiB / Difficulty: 68 / NoviSteps: 5Q / 配点: 200 点
問題概要
種類のコショウがレストランに置いてあり、種類 のコショウは ある。
高橋君はこの店で 個の料理を注文した。 相性の都合で 番目の料理には種類 のコショウしかかけることができず、 番目の料理にかけられるコショウの量の上限は である。 なお、種類 のコショウを合計 を超えてかけることはできない。
高橋君が料理にかけたコショウの量の合計を最大にしようとするとき、合計何 のコショウを料理にかけることができるか求めよ。
制約
- 入力は全て整数
考察
料理 について、かけることのできるコショウの最大量は である。
したがって、全ての料理に対して を求めて合計すればよい。
ただし、料理 に のコショウをかけたとき、残りのコショウの量を と更新しておくことを忘れないようにする。
実装例
CPP
1.#include <bits/stdc++.h>2.using namespace std;3. 4.#define rep(i, start, end) for (auto i = (start); (i) < (end); (i)++)5. 6.// ======================================== //7. 8.int main()9.{10. int N, M;11. cin >> N >> M;12. vector<int> C(M);13. rep(i, 0, M) cin >> C[i];14. vector<int> A(N), B(N);15. rep(i, 0, N) cin >> A[i] >> B[i], A[i]--;16. 17. int ans = 0;18. rep(i, 0, N)19. {20. int v = min(B[i], C[A[i]]);21. ans += v;22. C[A[i]] -= v;23. }24. 25. cout << ans << endl;26. 27. return 0;28.}
Submission #73892508 - AtCoder Beginner Contest 448
AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online.
AtCoder
実装時間: 5 分
コメント
問題文に妙にストーリ性があって、AWCの問題かと思った。





