Submission #1218728

#TimeUsernameProblemLanguageResultExecution timeMemory
1218728theiuliusIce Hockey World Championship (CEOI15_bobek)C++20
50 / 100
284 ms20800 KiB
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define ff first
#define ss second
#define pb push_back
int n, m, sum, ans;
const int N = 1e6 + 6;

main(){
    /*ifstream cin(".in");
    ofstream cout(".out");*/
    ios::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);
 
    cin >> n >> m;
    int a[n] = {};
    for (int i = 0; i < n; i++){
        cin >> a[i];
    }
    
    vector<int> v0, v1;
    for (int i = 0; i < (1 << ((n + 1) / 2)); i++){
        sum = 0;
        for (int j = 0; j < (n + 1) / 2; j++){
            if (i & (1 << j)){
                sum += a[j];
            }
        }
        if (sum <= m){
            v0.pb(sum);
        }
    }
    
    for (int i = 0; i < (1 << ((n + 1) / 2)); i++){
        sum = 0;
        for (int j = 0; j < (n + 1) / 2; j++){
            if (i & (1 << j)){
                sum += a[j + (n + 1) / 2];
            }
        }
        if (sum <= m){
            v1.pb(sum);
        }
    }
    
    sort(v0.begin(), v0.end());
    sort(v1.begin(), v1.end());
    int last = 0;
    for (int i = 0; i < v1.size(); i++){
        if (v1[i] + v0[0] <= m){
            last = i;
        }else{
            break;
        }
    }
    
    ans += last + 1;
    for (int i = 1; i < v0.size(); i++){
        while (v1[last] + v0[i] > m){
            last--; // 0ze qvemot ar chamova
        }
        ans += last + 1;
    }
    cout << ans << endl;
}

Compilation message (stderr)

bobek.cpp:10:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   10 | main(){
      | ^~~~
#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...