제출 #1181437

#제출 시각아이디문제언어결과실행 시간메모리
1181437AlgorithmWarriorIce Hockey World Championship (CEOI15_bobek)C++20
100 / 100
165 ms20892 KiB
#include <bits/stdc++.h>

using namespace std;

int n;
long long m;
vector<long long>v1,v2,sum1,sum2;

void read(){
    cin>>n>>m;
    int jum=n/2;
    int i;
    for(i=1;i<=jum;++i){
        long long nr;
        cin>>nr;
        v1.push_back(nr);
    }
    for(i=jum+1;i<=n;++i){
        long long nr;
        cin>>nr;
        v2.push_back(nr);
    }
}

void gen_sum(vector<long long>&v,vector<long long>&sum,int ind,long long sm){
    if(ind==(int)v.size())
        sum.push_back(sm);
    else{
        gen_sum(v,sum,ind+1,sm);
        gen_sum(v,sum,ind+1,sm+v[ind]);
    }
}

long long solve(){
    sort(sum1.begin(),sum1.end());
    sort(sum2.begin(),sum2.end());
    int id=(int)sum2.size()-1;
    int i;
    long long cnt=0;
    for(i=0;i<(int)sum1.size();++i){
        while(id>=0 && sum1[i]+sum2[id]>m)
            --id;
        cnt+=id+1;
    }
    return cnt;
}

int main()
{
    read();
    gen_sum(v1,sum1,0,0);
    gen_sum(v2,sum2,0,0);
    cout<<solve();
    return 0;
}
#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...