제출 #1291472

#제출 시각아이디문제언어결과실행 시간메모리
1291472Jawad_Akbar_JJIce Hockey World Championship (CEOI15_bobek)C++20
100 / 100
169 ms29184 KiB
#include <iostream> #include <vector> #include <algorithm> using namespace std; #define int long long int a[1<<20], Sum[1<<20]; signed main(){ int n1, M, n2, Ans = 0; cin>>n1>>M; n2 = n1 / 2, n1 -= n2; vector<int> v1, v2; for (int i=0;i<n1;i++) cin>>a[1<<i]; for (int i=0;i<(1<<n1);i++){ if (i) Sum[i] = Sum[i ^ (i & -i)] + a[i & -i]; v1.push_back(Sum[i]); } for (int i=0;i<n2;i++) cin>>a[1<<i]; for (int i=0;i<(1<<n2);i++){ if (i) Sum[i] = Sum[i ^ (i & -i)] + a[i & -i]; v2.push_back(Sum[i]); } sort(begin(v1), end(v1)); sort(begin(v2), end(v2)); for (int i=v1.size()-1, l=0;i>=0;i--){ while (l < v2.size() and v1[i] + v2[l] <= M) l++; Ans += l; } 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...