【AtCoder】ABC 429 B - N - 1
AtCoder/ABC/B問題AtCoder/ABC/200点問題AtCoder/灰DiffAtCoder/NoviSteps/6QAtCoder/全探索AtCoder/数学/配列の総和競技プログラミング
https://atcoder.jp/contests/abc429/tasks/abc429_b
atcoder.jp
実行時間制限: 2 sec / メモリ制限: 1024 MiB / Difficulty: 24 / NoviSteps: 6Q / 配点: 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> A(N);13. rep(i, 0, N) cin >> A[i];14. 15. int sum = 0;16. rep(i, 0, N) sum += A[i];17. 18. rep(i, 0, N)19. {20. if (sum - A[i] == M)21. {22. cout << "Yes" << endl;23. return 0;24. }25. }26. 27. cout << "No" << endl;28. 29. return 0;30.}https://atcoder.jp/contests/abc429/submissions/70412031
atcoder.jp
実装時間: 5 分以内
コメント
A 問題に続いて、これも素直な全探索で解ける問題だった。





