#include<iostream>
#include <vector>
using namespace std;
int main(){
int N;
cin >> N;
vector<int> B(N);
vector<bool> available(2*N -1, true);
int first = 0;
int last = 2 * N - 2;
for (int i=0;i<N;i++) cin >> B[i];
vector<int> A(2*N - 1);
A[0] = B[0];
available[B[0] - 1] = false;
for (int i=1;i<N;i++){
if (B[i] == B[i -1]){
while (!available[first]) first++;
while (!available[last]) last--;
A[2 * i - 1] = first + 1;
A[2 * i] = last + 1;
available[last] = false;
available[first] = false;
}
if (B[i] > B[i-1]){
A[2 * i - 1] = B[i];
available[B[i] - 1] = false;
while (!available[last]) last--;
A[2 * i] = last + 1;
available[last] = false;
}
if (B[i] < B[i-1]){
A[2 * i - 1] = B[i];
available[B[i] - 1] = false;
while (!available[first]) first++;
A[2 * i] = first + 1;
available[first] = false;
}
}
for (int i=0;i<A.size();i++) cout << A[i] << " ";
cout << endl;
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |