제출 #1197811

#제출 시각아이디문제언어결과실행 시간메모리
1197811primo중앙값 배열 (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...