제출 #1218630

#제출 시각아이디문제언어결과실행 시간메모리
1218630giorgi123glmIce Hockey World Championship (CEOI15_bobek)C++20
60 / 100
1098 ms65896 KiB
#include <algorithm> #include <functional> #include <iostream> #include <fstream> #include <list> #include <map> using namespace std; #define int long long signed main () { ios::sync_with_stdio (false); cin.tie (0); cout.tie (0); int N = 0, M = 0; cin >> N >> M; vector <int> v (N + 1); for (int i = 1; i <= N; i++) cin >> v[i]; map <int, int> m; for (int bit = 0; bit < (1 << (N / 2)); bit++) { int sum = 0; for (int i = 0; i < 20; i++) if (bit & (1 << i)) sum += v[i + 1]; m[sum]++; } for (auto it = ++m.begin(); it != m.end(); it++) { auto it1 = it; it->second += (--it1)->second; } int ans = 0; for (int bit = 0; bit < (1 << (N - N / 2)); bit++) { int sum = 0; for (int i = 0; i < 20; i++) if (bit & (1 << i)) sum += v[i + N / 2 + 1]; auto it = m.lower_bound ((M - sum) + 1); if (it == m.begin()) continue; ans += (*--it).second; } cout << ans << '\n'; }
#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...