Submission #861854

#TimeUsernameProblemLanguageResultExecution timeMemory
861854maks007Zalmoxis (BOI18_zalmoxis)C++14
35 / 100
129 ms50736 KiB
#include "bits/stdc++.h" using namespace std; #define int long long int k; vector <pair <int,int>> ans; vector <int> a; void decomp(int v) { stack <int> st; st.push(v); if(k > (1 << v)) { k -= (1 << v); for(int i = 0; i < (1 << v); i ++) cout << 0 << " "; return; } while(1) { if(st.size() == k + 1) break; int v = st.top(); st.pop(); if(v == 0) { cout << 0 << " "; k --; continue; } st.push(v-1); st.push(v-1); } k -= st.size(); while(!st.empty()) { cout << st.top() << " "; st.pop(); } } void f(int v) { if(a.size() == 0) { ans.push_back({v, 1}); return; } if(v == a.back()) { ans.push_back({v,0}); a.pop_back(); return; } if(a.back() > v) { ans.push_back({v,1}); return; } f(v-1); f(v-1); } signed main () { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, cnt = 0; cin >> n >> k; for(int i = 0; i < n; i ++) { int x; cin >> x; a.push_back(x); } reverse(a.begin(), a.end()); f(30); for(auto i : ans) k -= i.second; for(auto i : ans) { if(i.second == 0) cout << i.first << " "; else if(k){ decomp(i.first); }else cout << i.first << " "; } return 0; }

Compilation message (stderr)

zalmoxis.cpp: In function 'void decomp(long long int)':
zalmoxis.cpp:20:16: warning: comparison of integer expressions of different signedness: 'std::stack<long long int>::size_type' {aka 'long unsigned int'} and 'long long int' [-Wsign-compare]
   20 |   if(st.size() == k + 1) break;
      |      ~~~~~~~~~~^~~~~~~~
zalmoxis.cpp: In function 'int main()':
zalmoxis.cpp:59:9: warning: unused variable 'cnt' [-Wunused-variable]
   59 |  int n, cnt = 0;
      |         ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...