Submission #1315545

#TimeUsernameProblemLanguageResultExecution timeMemory
1315545tarner_exemedians (balkan11_medians)C++20
5 / 100
34 ms5496 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];
    }
    for (int i = 1; i  < 2*N ; i++)
    {
        zajete[i] = 0;
    }

    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;
        }
    }
    //cout << N << "\n";
    for (int i = 1 ; i < 2*N ; 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...