Submission #861858

#TimeUsernameProblemLanguageResultExecution timeMemory
861858maks007Zalmoxis (BOI18_zalmoxis)C++14
35 / 100
123 ms50472 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> q; vector <int> ans2; q.push(v); while(q.size() + ans2.size() != k + 1) { int v = q.top(); q.pop(); if(v == 0) { ans2.push_back(v); continue; } q.push(v-1); q.push(v-1); } while(q.size()) { int v =q.top(); q.pop(); ans2.push_back(v); } for(auto i : ans2) cout << i << " "; } 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); // assert() // for(auto i : ans) cout << i.first << " "; for(auto i : ans) k -= i.second; assert(k >= 0); 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:15:31: 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]
   15 |  while(q.size() + ans2.size() != k + 1) {
      |        ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
zalmoxis.cpp: In function 'int main()':
zalmoxis.cpp:54:9: warning: unused variable 'cnt' [-Wunused-variable]
   54 |  int n, cnt = 0;
      |         ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...