167562025-05-12 10:29:05csdavidMexxcpp17Accepted 100/100241ms7732 KiB
#include <iostream>
#include <vector>
using namespace std;

vector<short> 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
6Accepted1ms328 KiB
7Accepted1ms316 KiB
8Accepted1ms316 KiB
9Accepted1ms316 KiB
10Accepted1ms316 KiB
11Accepted1ms316 KiB
subtask316/16
12Accepted1ms316 KiB
13Accepted1ms316 KiB
14Accepted1ms316 KiB
15Accepted1ms316 KiB
16Accepted1ms316 KiB
subtask432/32
17Accepted4ms472 KiB
18Accepted4ms460 KiB
19Accepted4ms316 KiB
20Accepted4ms448 KiB
21Accepted4ms316 KiB
22Accepted4ms508 KiB
23Accepted3ms448 KiB
24Accepted3ms316 KiB
subtask544/44
25Accepted230ms7700 KiB
26Accepted229ms7476 KiB
27Accepted229ms7592 KiB
28Accepted231ms7584 KiB
29Accepted241ms7732 KiB
30Accepted230ms7476 KiB
31Accepted231ms7732 KiB
32Accepted231ms7732 KiB
33Accepted231ms7728 KiB
34Accepted231ms7732 KiB
35Accepted234ms7724 KiB
36Accepted180ms4264 KiB
37Accepted180ms4148 KiB