Submission #756407

#TimeUsernameProblemLanguageResultExecution timeMemory
756407sheldonZalmoxis (BOI18_zalmoxis)C++14
0 / 100
152 ms11284 KiB
#include <bits/stdc++.h> using namespace std; void solve() { // ifstream cin ("zalmoxis.in"); // ofstream cout ("zalmoxis.out"); int n, k; cin >> n >> k; vector<int> st = {(int) 1e9}; vector<int> a(n), ans; int done = 0; for (int i = 0; i < n; ++i) { cin >> a[i]; if (a[i] == st.back()) { st.push_back(a[i]); while (st.size() > 1 && st.back() == st[st.size() - 2]) { st.pop_back(); st.back()++; } } else if (a[i] > st.back()) { while (a[i] >= st.back()) { ans.push_back(st.back()); ++done; st.back()++; while (st.size() > 1 && st.back() == st[st.size() - 2]) { st.pop_back(); st.back()++; } } --done; ans.pop_back(); } else { st.push_back(a[i]); } ans.push_back(a[i]); } assert(st.size() >= 2); // while (st.size() != 2) { // ans.push_back(st.back()); // st.push_back(st.back()); // ++done; // while (st.size() > 1 && st.back() == st[st.size() - 2]) { // st.pop_back(); // st.back()++; // } // } for (int it = st[1]; it < st[1] + k - done; ++it) { ans.push_back(it); } for (int x : ans) cout << x << ' '; } int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...