提出 #53763650
ソースコード 拡げる
#include <bits/stdc++.h> using namespace std; using ll = long long; #define rep(i, x) for (int i = 0; i < (x); i++) void generateSubarraySums(vector<ll> &arr, vector<ll> &result) { int n = arr.size(); int totalSubsets = 1 << n; // 2^n個の部分集合 for (int mask = 0; mask < totalSubsets; mask++) { ll sum = 0; for (int i = 0; i < n; i++) { if (mask & (1 << i)) { sum += arr[i]; } } result.push_back(sum); } } int main() { int N, K; cin >> N >> K; vector<ll> A(N); rep(i, N) cin >> A[i]; // 配列を二分割 vector<ll> firstHalf(A.begin(), A.begin() + N / 2); vector<ll> secondHalf(A.begin() + N / 2, A.end()); vector<ll> firstHalfSums, secondHalfSums; generateSubarraySums(firstHalf, firstHalfSums); generateSubarraySums(secondHalf, secondHalfSums); // secondHalfSumsをソート sort(secondHalfSums.begin(), secondHalfSums.end()); string ans = "No"; for (ll sum : firstHalfSums) { if (binary_search(secondHalfSums.begin(), secondHalfSums.end(), K - sum)) { ans = "Yes"; break; } } cout << ans << endl; return 0; }
提出情報
提出日時 | |
---|---|
問題 | B14 - Another Subset Sum |
ユーザ | ryoh1004 |
言語 | C++ 23 (gcc 12.2) |
得点 | 1000 |
コード長 | 1146 Byte |
結果 | AC |
実行時間 | 7 ms |
メモリ | 3824 KiB |
ジャッジ結果
セット名 | Sample | All | ||||
---|---|---|---|---|---|---|
得点 / 配点 | 0 / 0 | 1000 / 1000 | ||||
結果 |
|
|
セット名 | テストケース |
---|---|
Sample | sample_01.txt |
All | 10_random_small_00.txt, 10_random_small_02.txt, 10_random_small_03.txt, 10_random_small_04.txt, 10_random_small_05.txt, 10_random_small_06.txt, 10_random_small_07.txt, 10_random_small_08.txt, 10_random_small_09.txt, 10_random_small_10.txt, 10_random_small_13.txt, 10_random_small_14.txt, 20_random_large_00.txt, 20_random_large_01.txt, 20_random_large_02.txt, 20_random_large_03.txt, 20_random_large_04.txt, 20_random_large_05.txt, 20_random_large_06.txt, 20_random_large_07.txt, 20_random_large_08.txt, 20_random_large_09.txt, 20_random_large_10.txt, 20_random_large_11.txt, 20_random_large_12.txt, 20_random_large_13.txt, 20_random_large_14.txt, sample_01.txt |
ケース名 | 結果 | 実行時間 | メモリ |
---|---|---|---|
10_random_small_00.txt | AC | 1 ms | 3616 KiB |
10_random_small_02.txt | AC | 1 ms | 3680 KiB |
10_random_small_03.txt | AC | 1 ms | 3684 KiB |
10_random_small_04.txt | AC | 1 ms | 3540 KiB |
10_random_small_05.txt | AC | 1 ms | 3492 KiB |
10_random_small_06.txt | AC | 1 ms | 3472 KiB |
10_random_small_07.txt | AC | 1 ms | 3612 KiB |
10_random_small_08.txt | AC | 1 ms | 3448 KiB |
10_random_small_09.txt | AC | 1 ms | 3540 KiB |
10_random_small_10.txt | AC | 1 ms | 3612 KiB |
10_random_small_13.txt | AC | 1 ms | 3544 KiB |
10_random_small_14.txt | AC | 1 ms | 3540 KiB |
20_random_large_00.txt | AC | 3 ms | 3676 KiB |
20_random_large_01.txt | AC | 7 ms | 3736 KiB |
20_random_large_02.txt | AC | 2 ms | 3620 KiB |
20_random_large_03.txt | AC | 3 ms | 3664 KiB |
20_random_large_04.txt | AC | 2 ms | 3668 KiB |
20_random_large_05.txt | AC | 7 ms | 3824 KiB |
20_random_large_06.txt | AC | 2 ms | 3600 KiB |
20_random_large_07.txt | AC | 3 ms | 3600 KiB |
20_random_large_08.txt | AC | 3 ms | 3724 KiB |
20_random_large_09.txt | AC | 5 ms | 3744 KiB |
20_random_large_10.txt | AC | 3 ms | 3720 KiB |
20_random_large_11.txt | AC | 4 ms | 3732 KiB |
20_random_large_12.txt | AC | 3 ms | 3664 KiB |
20_random_large_13.txt | AC | 7 ms | 3720 KiB |
20_random_large_14.txt | AC | 4 ms | 3664 KiB |
sample_01.txt | AC | 1 ms | 3612 KiB |