167552025-05-12 10:28:33csdavidMexxcpp17Accepted 100/100236ms9620 KiB
#include <iostream>
#include <vector>
using namespace std;

vector<int> b;
int utolso=0;
void irj(){
    while(b[utolso]){
        utolso++;
    }
    cout << utolso << ' ';
    b[utolso]=2;
}

int g=0;
void irj2(){
    while(b[g]!=1){
        g++;
    }
    b[g]=2;
    cout << g << ' ';
}

int main()
{
    int n;
    cin >> n;
    int a[n];
    b.resize(2*n);
    for(int i=0; i<n*2; i++){
        b[i]=0;
    }
    for(auto& it:a){
        cin >> it;
        b[it]=1;
    }
    if(a[0]>1){
        cout << "NEM";
        return 0;
    }
    for(int i=1; i<n; i++){
        if(a[i]<a[i-1]){
            cout << "NEM";
            return 0;
        }
        if(a[i]>i+1){
            cout << "NEM";
            return 0;
        }
    }
    cout << "IGEN\n";
    if(a[0]==1){
        cout << 0 << ' ';
        b[0]=2;
    }
    else{
        irj();
    }
    for(int i=1; i<n; i++){
        if(a[i]==a[i-1]){
            irj();
        }
        else{
            irj2();
        }
    }
    return 0;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted1ms316 KiB
2Accepted1ms316 KiB
subtask28/8
3Accepted1ms316 KiB
4Accepted1ms316 KiB
5Accepted1ms316 KiB
6Accepted1ms316 KiB
7Accepted1ms316 KiB
8Accepted1ms316 KiB
9Accepted1ms316 KiB
10Accepted1ms316 KiB
11Accepted1ms316 KiB
subtask316/16
12Accepted1ms320 KiB
13Accepted1ms512 KiB
14Accepted1ms316 KiB
15Accepted1ms500 KiB
16Accepted1ms316 KiB
subtask432/32
17Accepted3ms316 KiB
18Accepted4ms316 KiB
19Accepted3ms512 KiB
20Accepted4ms316 KiB
21Accepted4ms464 KiB
22Accepted4ms316 KiB
23Accepted3ms316 KiB
24Accepted3ms316 KiB
subtask544/44
25Accepted236ms9440 KiB
26Accepted228ms9532 KiB
27Accepted225ms9524 KiB
28Accepted226ms9524 KiB
29Accepted225ms9524 KiB
30Accepted225ms9456 KiB
31Accepted228ms9524 KiB
32Accepted228ms9552 KiB
33Accepted234ms9520 KiB
34Accepted226ms9456 KiB
35Accepted230ms9620 KiB
36Accepted178ms6196 KiB
37Accepted178ms6196 KiB