Submission #850947

#TimeUsernameProblemLanguageResultExecution timeMemory
850947Charizard2021Zalmoxis (BOI18_zalmoxis)C++17
100 / 100
195 ms39892 KiB
#include<bits/stdc++.h>
using namespace std;
const int N = 1000001;
void solve(int n, int &k){
    if(k == 0){
        cout << n << " ";
        return;
    }
    k--;
    solve(n - 1, k);
    solve(n - 1, k);
}
int main(){
    int n, k;
    cin >> n >> k;
    int a[1 + n];
    for(int i = 0; i < n; i++){
        cin >> a[i];
    }
    a[n] = 30;
    int counter = 0;
    vector<int> cur[1 + n];
    for(int i = 0; i < n; i++){
        counter += (1 << a[i]);
        while(__builtin_ctz(counter) < a[i + 1]){
            cur[i].push_back(__builtin_ctz(counter));
            counter += (counter & (-counter));
            k--;
        }
    }
    for(int i = 0;i < n; i++){
        cout << a[i] << " ";
        for(int j = 0; j < cur[i].size(); j++){
            solve(cur[i][j], k);
        }
    }
    cout << "\n";
}

Compilation message (stderr)

zalmoxis.cpp: In function 'int main()':
zalmoxis.cpp:33:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   33 |         for(int j = 0; j < cur[i].size(); j++){
      |                        ~~^~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...