5394 2023. 05. 09 14:11:25 mraron Mexx cpp17 Elfogadva 100/100 116ms 20168 KiB
#include<bits/stdc++.h>
using namespace std;
int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int n;
    cin>>n;
    vector<int> a(n);
    for(int i=0;i<n;++i) {
        cin>>a[i];
    }
    bool ok=true;
    for(int i=0;i<n;++i) {
        ok&=i==0||a[i-1]<=a[i];
        ok&=a[i]<=i+1;
    }
    
    cerr<<ok<<"\n";
    if(!ok) {
        cout<<"NEM\n";
        return 0;
    }

    a.insert(a.begin(), 0);
    int mx=*max_element(a.begin(), a.end());

    vector<int> had(2*n);
    vector<int> b(n+1,-1);
    for(int i=1;i<=n;++i) {
        if(a[i-1]!=a[i]) {
            b[i]=a[i-1];
            had[b[i]]=1;
        }
    }
    
    int curr=0;
    for(int i=1;i<=n;++i) {
        if(b[i]==-1) {
            while(had[curr] || curr==mx) curr++;
            b[i]=curr;
            had[curr]=1;
        }
    }

    for(int i=1;i<=n;) {
        int j=i;
        while(j<=n && a[i]==a[j]) j++;
        if(i+1<j) {
            reverse(b.begin()+i+1, b.begin()+j);
        }
        i=j;
    }

    cout<<"IGEN\n";
    for(int i=1;i<=n;++i) cout<<b[i]<<" ";
    cout<<"\n";
    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Elfogadva 3ms 1700 KiB
2 Elfogadva 3ms 1928 KiB
subtask2 8/8
3 Elfogadva 3ms 2136 KiB
4 Elfogadva 3ms 2348 KiB
5 Elfogadva 3ms 2572 KiB
6 Elfogadva 3ms 2784 KiB
7 Elfogadva 3ms 2872 KiB
8 Elfogadva 3ms 2864 KiB
9 Elfogadva 3ms 2996 KiB
10 Elfogadva 2ms 3076 KiB
11 Elfogadva 3ms 3204 KiB
subtask3 16/16
12 Elfogadva 3ms 3292 KiB
13 Elfogadva 3ms 3296 KiB
14 Elfogadva 3ms 3292 KiB
15 Elfogadva 3ms 3416 KiB
16 Elfogadva 2ms 3500 KiB
subtask4 32/32
17 Elfogadva 4ms 4076 KiB
18 Elfogadva 4ms 3956 KiB
19 Elfogadva 4ms 4032 KiB
20 Elfogadva 4ms 4384 KiB
21 Elfogadva 4ms 4544 KiB
22 Elfogadva 4ms 4664 KiB
23 Elfogadva 3ms 4308 KiB
24 Elfogadva 3ms 4196 KiB
subtask5 44/44
25 Elfogadva 108ms 19884 KiB
26 Elfogadva 109ms 19876 KiB
27 Elfogadva 112ms 20128 KiB
28 Elfogadva 112ms 20168 KiB
29 Elfogadva 109ms 20056 KiB
30 Elfogadva 109ms 20060 KiB
31 Elfogadva 111ms 20012 KiB
32 Elfogadva 111ms 20012 KiB
33 Elfogadva 112ms 20012 KiB
34 Elfogadva 112ms 20008 KiB
35 Elfogadva 116ms 20008 KiB
36 Elfogadva 56ms 8332 KiB
37 Elfogadva 56ms 8180 KiB