Submission #650593

#TimeUsernameProblemLanguageResultExecution timeMemory
650593Matteo_VerzZalmoxis (BOI18_zalmoxis)C++17
15 / 100
1096 ms8120 KiB
#include <bits/stdc++.h> using namespace std; bool removeElements(vector <int> &st) { bool removed = false; while (st.size() > 1 && st[st.size() - 1] == st[st.size() - 2]) { removed = true; st.pop_back(); st.back()++; } return removed; } void print(int n, int &k) { if (n == 0 || k == 0) cout << n << ' '; else { k--; print(n - 1, k); print(n - 1, k); } } int main() { int n, k; cin >> n >> k; vector <int> v(1 + n); for (int i = 0; i < n; i++) cin >> v[i]; v[n] = 30; vector <pair <int, bool>> finalv; vector <int> st; for (int i = 0; i <= n; i++) { cerr << "st: "; for (auto it : st) cerr << it << ' '; cerr << '\n'; if (st.size() && v[i] > st.back()) { while (v[i] > st.back()) { finalv.push_back(make_pair(st.back(), 1)); k--; st.back()++; removeElements(st); } } if (st.size() && v[i] == st.back()) { st.back()++; removeElements(st); } else st.push_back(v[i]); removeElements(st); finalv.push_back(make_pair(v[i], 0)); } for (int i = 0; i < finalv.size() - 1; i++) { if (finalv[i].second == 1) print(finalv[i].first, k); else cout << finalv[i].first << ' '; } return 0; }

Compilation message (stderr)

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