제출 #1315533

#제출 시각아이디문제언어결과실행 시간메모리
1315533tarner_exe중앙값 배열 (balkan11_medians)C++20
5 / 100
33 ms5384 KiB
#include<bits/stdc++.h> using namespace std; #define int long long #define elif else if #define ft first #define sc second #define pb push_back #define pII pair<int,int> const int sizen = 2e6+11; const int oo = 1e16+11; int T[sizen]; int A[sizen]; int when[sizen]; int zajete[sizen]; int t = 1; int N; void solve() { cin >> N; int najstarszy = 2*N-1; int najmlodszy = 1; for (int i = 1 ; i <= N ;i ++) { cin >> T[i]; } A[1] = T[1]; zajete[T[1]]=1; for (int i = 2; i <= N ; i++) { if(T[i] == T[i-1]) { while(zajete[najmlodszy] == 1) { najmlodszy++; } while(zajete[najstarszy] == 1) { najstarszy--; } A[(i-1)*2] = najmlodszy; A[(i*2)-1] = najstarszy; zajete[najmlodszy] = 1; zajete[najstarszy] = 1; } elif(T[i] > T[i-1]) { while(zajete[najstarszy] == 1) { najstarszy--; } A[(i-1)*2] = T[i]; A[i*2-1] = najstarszy; zajete[T[i]]=1; zajete[najstarszy]=1; } elif(T[i] < T[i-1]) { while(zajete[najmlodszy] == 1) { najmlodszy++; } A[(i-1)*2] = T[i]; A[i*2 - 1]= najmlodszy; zajete[najmlodszy] = 1; zajete[T[i]] =1; } } for (int i = 1 ;i <= 2*N - 1 ; i ++) { cout << A[i] << " "; } cout << "\n"; } signed main() { //cin >> t; while(t--) { solve(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...