Submission #1349833

#TimeUsernameProblemLanguageResultExecution timeMemory
1349833NewtonabcIce Hockey World Championship (CEOI15_bobek)C++20
100 / 100
410 ms20824 KiB
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll a[50];
vector<ll> va,vb,da,db;
void gen(vector<ll> &v,vector<ll> &d){
    int n=v.size();
    for(int i=0;i<(1<<n);i++){
        ll s=0;
        for(int j=0;j<n;j++) if(i&(1<<j)) s+=v[j];
        d.push_back(s);
    }
}
int main(){
    int n; ll m;
    cin>>n >>m;
    for(int i=0;i<(n+1)/2;i++){
        ll x; cin>>x;
        va.push_back(x);
    }
    for(int i=0;i<n/2;i++){
        ll x; cin>>x;
        vb.push_back(x);
    }
    gen(va,da);
    gen(vb,db);
    sort(db.begin(),db.end());
    int ma=da.size();
    ll ans=0;
    for(int i=0;i<ma;i++){
        ll vf=da[i];
        if(vf>m) continue;
        int p=upper_bound(db.begin(),db.end(),m-vf)-db.begin()-1;
        ans+=(ll)(p+1);
    }
    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...