제출 #737510

#제출 시각아이디문제언어결과실행 시간메모리
737510josanneo22중앙값 배열 (balkan11_medians)C++17
100 / 100
28 ms3528 KiB
#include <bits/stdc++.h> #ifdef BLAT #include "debug/debug.hpp" #else #define debug(x...) #endif using namespace std; void nextValue(int &last, int coef, const vector <bool> &visited) { while (visited[last] == true) last += coef; } void insertValue(int value, int &l, int &r, vector <int> &v, vector <bool> &visited) { v.push_back(value); visited[value] = true; nextValue(l, 1, visited); nextValue(r, -1, visited); } int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; vector <int> a, b(n); vector <bool> visited(2 * n); cin >> b[0]; a.push_back(b[0]); visited[b[0]] = true; int l = 1, r = 2 * n - 1; for (int i = 1; i < n; i++) { cin >> b[i]; nextValue(l, 1, visited); nextValue(r, -1, visited); if (b[i] == b[i - 1]) { insertValue(l, l, r, a, visited); insertValue(r, l, r, a, visited); } else if (b[i] > b[i - 1]) { if (visited[b[i]] == false) { insertValue(b[i], l, r, a, visited); insertValue(r, l, r, a, visited); } else { insertValue(r, l, r, a, visited); insertValue(r, l, r, a, visited); } } else { if (visited[b[i]] == false) { insertValue(b[i], l, r, a, visited); insertValue(l, l, r, a, visited); } else { insertValue(l, l, r, a, visited); insertValue(l, l, r, a, visited); } } } for (auto it : a) cout << it << ' '; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...