Submission #1197811

#TimeUsernameProblemLanguageResultExecution timeMemory
1197811primomedians (balkan11_medians)C++20
10 / 100
69 ms11716 KiB
#include <bits/stdc++.h>
#define int long long

using namespace std;

int32_t main() {
    ios_base::sync_with_stdio(0);
    cin.tie(nullptr);
    
    int n;
    cin >> n;
    
    vector<int> b(n);
    for (int i = 0; i < n; ++i) {
        cin >> b[i];
    }

    set<int> st;
    for (int i = 1; i <= 2 * n - 1; ++i) {
        st.insert(i);
    }

    vector<int> a;
    a.push_back(b[0]);
    st.erase(b[0]);

    for (int i = 1; i < n; ++i) {
        if (b[i - 1] == b[i]) {
            a.push_back(*st.begin());
            a.push_back(*st.rbegin());
            st.erase(st.begin());
            st.erase(*--st.end());
        } else if (b[i - 1] < b[i]) {
            if (st.count(b[i])) {
                a.push_back(b[i]);
                st.erase(b[i]);
                a.push_back(*st.rbegin());
                st.erase(*--st.end());
            } else {
                a.push_back(*st.begin());
                st.erase(*st.begin());
                a.push_back(*st.begin());
                st.erase(*st.begin());
            }
        } else {
            if (st.count(b[i])) {
                a.push_back(b[i]);
                st.erase(b[i]);
                a.push_back(*st.begin());
                st.erase(st.begin());
            } else {
                a.push_back(*st.rbegin());
                st.erase(*--st.begin());
                a.push_back(*st.rbegin());
                st.erase(*--st.end());
            }
        }
    }

    for (auto& u: a) {
        cout << u << " ";
    }

    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...