#include<bits/stdc++.h>
using namespace std;
#define int long long
#define elif else if
#define sc second
#define ft first
const int sizen = 2e6+11;
const int oo = 1e16+11;
int T[sizen];
int A[sizen];
int visited[sizen];
int N;
int t = 1;
void solve()
{
cin >> N;
for(int i = 1 ;i <= N ; i++)
{
cin >> T[i];
}
for(int i = 1 ; i < N*2 ; i ++)
{
visited[i] = 0;
}
int sm = 1;
int bg = (2*N)-1;
A[1] = T[1];
visited[T[1]] = 1;
for(int i = 2 ; i <= N ; i++)
{
if(T[i] == T[i-1])
{
while(visited[bg] != 0)
{
bg--;
}
while(visited[sm] != 0)
{
sm++;
}
A[(i-1)*2] = sm;
A[i*2 - 1] = bg;
visited[bg] = 1;
visited[sm] = 1;
}
elif(T[i] < T[i-1])
{
while(visited[sm] != 0)
{
sm ++;
}
A[(i-1)*2] = sm;
A[i*2 - 1] = T[i];
visited[T[i]]=1;
visited[sm] = 1;
}
elif(1)
{
while(visited[bg] != 0)
{
bg -- ;
}
A[(i-1)*2] = bg;
A[i*2 - 1] = T[i];
visited[bg] = 1;
visited[T[i]] = 1;
}
}
for(int i = 1; i < N*2 ; i++)
{
cout << A[i] << " ";
}
}
signed main()
{
while(t--)
{
solve();
}
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |