제출 #1218615

#제출 시각아이디문제언어결과실행 시간메모리
1218615LM1Ice Hockey World Championship (CEOI15_bobek)C++20
40 / 100
352 ms20612 KiB
#include<bits/stdc++.h> using namespace std; #define int long long #define pii pair<int,int> #define ff first #define ss second #define pb push_back #define vi vector<int> #define fr(i,ii,iii) for(int i=ii;i<iii;i++) const int N=42; int n,m; int a[N]; vi v[2]; signed main(){ ios_base::sync_with_stdio(NULL);cin.tie(NULL); cin>>n>>m; fr(i,0,n)cin>>a[i]; //cout<<n/2<<" "<<(n+1)/2<<"\n"; fr(mask,0,(1<<(n/2))){ int s=0; fr(i,0,n){ //if(mask==(1<<(n/2))-1 and mask&(1<<i))cout<<a[i]<<" "; if(mask&(1<<i))s+=a[i]; } if(s<=m)v[0].pb(s); } //cout<<"\n"; reverse(a,a+n); fr(mask,0,(1<<((n+1)/2))){ int s=0; fr(i,0,n){ //if(mask==(1<<((n+1)/2))-1 and mask&(1<<i))cout<<a[i]<<" "; if(mask&(1<<i))s+=a[i]; } if(s<=m)v[1].pb(s); } sort(v[0].begin(),v[0].end()); sort(v[1].begin(),v[1].end()); reverse(v[1].begin(),v[1].end()); // for(auto i:v[0])cout<<i<<" "; // cout<<"\n"; // for(auto i:v[1])cout<<i<<" "; // cout<<"\n"; int j=0,ans=0; for(auto i:v[0]){ while(j<v[1].size() and (v[1][j]+i)>m)j++; //cout<<i<<" "<<j<<"\n"; ans+=v[1].size()-j; } cout<<ans; }
#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...