제출 #1316197

#제출 시각아이디문제언어결과실행 시간메모리
1316197michud07medians (balkan11_medians)C++20
10 / 100
16 ms2836 KiB
#include<bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int, int> pii; const int N = 1e5 + 5; int medians[N]; int tab[2 * N]; bool used[2 * N]; int getNext(int x, int del){ while(used[x]){ x += del; } return x; } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); int n, l, r; cin >> n; l = 1; r = 2 * n - 1; for(int i = 1 ; i <= n ; i++){ cin >> medians[i]; } tab[1] = medians[1]; used[medians[1]] = 1; for(int i = 2 ; i <= n ; i++){ l = getNext(l, 1); r = getNext(r, -1); if(medians[i] == medians[i - 1]){ tab[2 * i - 2] = l; tab[2 * i - 1] = r; used[l] = 1; used[r] = 1; }else{ if(medians[i] <= l){ tab[2 * i - 2] = r; used[r] = 1; r = getNext(r, -1); }else{ tab[2 * i - 2] = l; used[l] = 1; getNext(l, 1); } if(used[medians[i]]){ if(medians[i] <= l){ tab[2 * i - 1] = r; used[r] = 1; }else{ tab[2 * i - 1] = l; used[l] = 1; } }else{ tab[2 * i - 1] = medians[i]; used[medians[i]] = 1; } } } for(int i = 1 ; i < 2 * n ; i++){ cout << tab[i] << " "; } cout << '\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...