Submission #1163263

#TimeUsernameProblemLanguageResultExecution timeMemory
1163263cpismayilmmdv985Ice Hockey World Championship (CEOI15_bobek)C++20
0 / 100
125 ms5516 KiB
#include <bits/stdc++.h> using namespace std; int main() { cin.tie(nullptr)->sync_with_stdio(false); int N, X; cin >> N >> X; int N1 = N >> 1, N2 = N - N1; vector<int> A(N1), B(N2); map<int, int> mp; int64_t res = 0; for (auto &a : A) cin >> a; for (auto &b : B) cin >> b; for (int mask = 1; mask < (1 << N1); mask++) { int sum = 0; bool flag = true; for (int i = 0; i < N1; i++) if (mask & (1 << i)) { if (sum + A[i] > X) { flag = false; break; } sum += A[i]; } if (!flag) continue; if (sum < X) mp[sum]++; res += sum == X; } for (int mask = 1; mask < (1 << N2); mask++) { int sum = 0; bool flag = true; for (int i = 0; i < N2; i++) if (mask & (1 << i)) { if (sum + B[i] > X) { flag = false; break; } sum += B[i]; } if (!flag) continue; res += sum == X; if (sum < X && mp.count(X - sum)) res += mp[X - sum]; } cout << res; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...