Submission #1218732

#TimeUsernameProblemLanguageResultExecution timeMemory
1218732nataliaaIce Hockey World Championship (CEOI15_bobek)C++20
20 / 100
493 ms10548 KiB
#include<bits/stdc++.h> using namespace std; void test_case() { int n, k; cin >> n >> k ; int a[n]; for(int i = 0; i< n ; i++) cin >> a[i]; int q = n/2; int p = n-n/2; int a1= 1, b=1; for(int i = 1; i<=q; i++) a1*=2; for(int i = 1; i<=p; i++) b*=2; vector<int> v1, v2; for(int i = 0; i< a1; i++) { string s = ""; int i1 = i; for(int j = 0; j < q ; j++) { if(i1%2==0) s+='0'; else s+='1'; i1/=2; } int sum = 0; for(int j = 0; j < n; j++) { if(s[j]=='1') sum+=a[j]; } if(sum<=k) v1.push_back(sum); } for(int i = 0; i< b; i++) { string s = ""; int i1 = i; for(int j = 0; j < p ; j++) { if(i1%2==0) s+='0'; else s+='1'; i1/=2; } int sum = 0; for(int j = 0; j < n; j++) { if(s[j]=='1') sum+=a[j+q]; } if(sum<=k) v2.push_back(sum); } sort(v1.begin(), v1.end()); sort(v2.begin(), v2.end()); int r = v2.size()-1; int ans =0; for(int i = 0; i < v1.size(); i++) { while(v2[r]+v1[i]>k&&r>=0) r--; ans+=r+1; } cout << ans; } signed main() { int t; t = 1; while(t--) test_case(); }
#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...