Submission #1218838

#TimeUsernameProblemLanguageResultExecution timeMemory
1218838lukasuliashviliIce Hockey World Championship (CEOI15_bobek)C++20
100 / 100
164 ms20892 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define fs first #define sc second #define pb push_back #define rep(i,a,b) for(int i=a; i<=b; i++) const int N=2000005; int a[N],l,sum,ans; vector<int> vec1,vec2,vec; void sum1(int l , int r , int sum){ if(l==r+1){ vec1.pb(sum); return ; } sum1(l+1,r,sum); sum1(l+1,r,sum+a[l]); } void sum2(int l , int r , int sum){ if(l==r+1){ vec2.pb(sum); return ; } sum2(l+1,r,sum); sum2(l+1,r,sum+a[l]); } signed main(){ int n, m;cin>>n>>m; for(int i=1; i<=n; i++){ cin>>a[i]; } sum1(1,n/2,0); sum2(n/2+1,n,0); sort(vec1.begin(),vec1.end()); sort(vec2.begin(),vec2.end()); // for(auto x:vec1){ // cout<<x<<" "; // } // cout<<endl; // for(auto x:vec2){ // cout<<x<<" "; // } // cout<<endl; l=vec2.size(); l--; for(int i=0; i<vec1.size(); i++){ if(l<0)break; while(vec1[i]+vec2[l]>m and l>=0){ l--; } ans+=(l+1); } cout<<ans<<endl; }
#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...