Submission #1278693

#TimeUsernameProblemLanguageResultExecution timeMemory
1278693JungPSIce Hockey World Championship (CEOI15_bobek)C++20
20 / 100
1096 ms13680 KiB
#include<iostream>
#include<vector>
#include<map>
using namespace std;
map<int,int> mp1,mp2;
vector<int> vec;
signed main(){
    ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);
    int n,m; cin >> n >> m;
    for(int i=0;i<n;++i){
        int a; cin >> a;
        vec.push_back(a);
    }
    for(int i=0;i<(1<<(n/2));++i){
        int sum=0;
        for(int j=0;j<n/2;++j){
            if((i&(1<<j))==(1<<j)){
                sum+=vec[j];
            }
        }
        ++mp1[sum];
    }
    for(int i=0;i<(1<<(n-n/2));++i){
        int sum=0;
        for(int j=0;j<n-n/2;++j){
            if((i&(1<<j))==(1<<j)){
                sum+=vec[j+n/2];
            }
        }
        ++mp2[sum];
    }
    int ans=0;
    
    for(auto i:mp1){
        for(auto j:mp2){
        if(i.first+j.first>m) break;
            ans+=i.second*j.second;
        }
        if(i.first>m) break;
    }
        
    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...