105122024-04-04 11:18:37RRoliMexxcpp17Részben helyes 19/100108ms13500 KiB
#include <bits/stdc++.h>
using namespace std;

int n, a[500001], b[500001];
bool c[1000001];

int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);

    cin>> n;
    for(int i = 1; i <= n; i++) {
        cin>> a[i];
        b[i] = -1;
        c[a[i]] = true;
    }
    c[0] = true;
    
    for(int i = 1; i < n; i++)
        if(a[i+1] > a[i])
            b[i+1] = a[i];

    int szam = 0;
    bool jo = true;
    for(int i = 1; i <= n; i++) {
        while(c[szam]) szam++;
        if(b[i] == -1) {
            b[i] = szam;
            szam++;
        } else if(szam < a[i]-1)
            jo = false;
        if(i > 1 && a[i] < a[i-1]) jo = false;
    }

    if(!jo || szam < a[n]-1) cout << "NEM";
    else {
        cout << "IGEN\n";
        for(int i = 1; i <= n; i++) cout << b[i] << ' ';
    }

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms2176 KiB
2Részben helyes3ms2336 KiB
subtask20/8
3Elfogadva3ms2652 KiB
4Elfogadva3ms2800 KiB
5Részben helyes3ms2884 KiB
6Elfogadva3ms3064 KiB
7Hibás válasz2ms3144 KiB
8Részben helyes3ms3320 KiB
9Elfogadva2ms3276 KiB
10Részben helyes2ms3280 KiB
11Elfogadva3ms3352 KiB
subtask30/16
12Részben helyes3ms3160 KiB
13Részben helyes3ms3288 KiB
14Részben helyes3ms3632 KiB
15Hibás válasz3ms3840 KiB
16Elfogadva3ms3952 KiB
subtask48/32
17Részben helyes4ms4148 KiB
18Részben helyes4ms4004 KiB
19Részben helyes4ms4136 KiB
20Részben helyes4ms4252 KiB
21Részben helyes4ms4260 KiB
22Részben helyes4ms4248 KiB
23Elfogadva3ms4120 KiB
24Elfogadva3ms4092 KiB
subtask511/44
25Elfogadva103ms12776 KiB
26Részben helyes104ms13072 KiB
27Részben helyes104ms13092 KiB
28Részben helyes104ms13212 KiB
29Részben helyes104ms13408 KiB
30Részben helyes105ms13500 KiB
31Részben helyes104ms13304 KiB
32Részben helyes104ms13212 KiB
33Részben helyes107ms13268 KiB
34Részben helyes105ms13348 KiB
35Részben helyes108ms13160 KiB
36Elfogadva61ms12556 KiB
37Elfogadva63ms12532 KiB