Submission #1315551

#TimeUsernameProblemLanguageResultExecution timeMemory
1315551tarner_exemedians (balkan11_medians)C++17
5 / 100
33 ms5416 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...