7317 2024. 01. 06 22:35:11 anon Mexx cpp17 Elfogadva 100/100 115ms 22076 KiB
#include <bits/stdc++.h>
#define all(x) (x).begin(), (x).end()
#define FastIO ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL)
using namespace std;
typedef long long ll;
int main() {
    FastIO;
    bool ok, same;
    ll i, j, rs, cntr, N;
    cin >> N;
    vector<ll> lucky(N);
    for(i = 0; i < N; i++)
        cin >> lucky[i];
    rs = lucky[0] - 1;
    ok = same = true;
    vector<ll> ans(N, 0);
    stack<ll> free_places;
    for(i = 1; i < N; i++) {
        if(lucky[i] == lucky[i - 1])
            continue;
        same = false;
        if(lucky[i] < lucky[i - 1] || ((lucky[i] - lucky[i - 1]) > (i - rs + ((ll) free_places.size())))) {
            ok = false;
            break;
        }
        for(j = 0; j < min(lucky[i] - lucky[i - 1], i - rs); j++)
            ans[i - j] = j + lucky[i - 1];
        while(j < i - rs)
            free_places.push(i - j++);
        while(j < lucky[i] - lucky[i - 1]) {
            ans[free_places.top()] = j++ + lucky[i - 1];
            free_places.pop();
        }
        rs = i;
    }
    if(same) {
        if(!lucky[0])
            fill(all(ans), 1);
        else if(lucky[0] > 1)
            ok = false;
    }
    else if(ok) {
        cntr = lucky.back();
        while(!free_places.empty()) {
            ans[free_places.top()] = ++cntr;
            free_places.pop();
        }
        for(i = rs + 1; i < N; i++)
            ans[i] = ++cntr;
    }
    if(ok) {
        cout << "IGEN\n";
        for(const auto &x : ans)
            cout << x << ' ';
        cout << '\n';
    }
    else
        cout << "NEM\n";
    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Elfogadva 3ms 1824 KiB
2 Elfogadva 3ms 2032 KiB
subtask2 8/8
3 Elfogadva 3ms 2236 KiB
4 Elfogadva 3ms 2460 KiB
5 Elfogadva 3ms 2544 KiB
6 Elfogadva 3ms 2652 KiB
7 Elfogadva 3ms 2868 KiB
8 Elfogadva 3ms 3080 KiB
9 Elfogadva 3ms 3292 KiB
10 Elfogadva 3ms 3508 KiB
11 Elfogadva 3ms 3736 KiB
subtask3 16/16
12 Elfogadva 3ms 3936 KiB
13 Elfogadva 3ms 3932 KiB
14 Elfogadva 3ms 3984 KiB
15 Elfogadva 3ms 3952 KiB
16 Elfogadva 3ms 4100 KiB
subtask4 32/32
17 Elfogadva 4ms 4452 KiB
18 Elfogadva 4ms 4560 KiB
19 Elfogadva 4ms 4764 KiB
20 Elfogadva 4ms 4848 KiB
21 Elfogadva 4ms 5116 KiB
22 Elfogadva 4ms 5020 KiB
23 Elfogadva 3ms 5032 KiB
24 Elfogadva 3ms 5016 KiB
subtask5 44/44
25 Elfogadva 112ms 21040 KiB
26 Elfogadva 112ms 20640 KiB
27 Elfogadva 112ms 20664 KiB
28 Elfogadva 112ms 20564 KiB
29 Elfogadva 112ms 20504 KiB
30 Elfogadva 112ms 20584 KiB
31 Elfogadva 114ms 20752 KiB
32 Elfogadva 114ms 20736 KiB
33 Elfogadva 115ms 20724 KiB
34 Elfogadva 115ms 20728 KiB
35 Elfogadva 115ms 20792 KiB
36 Elfogadva 67ms 21752 KiB
37 Elfogadva 68ms 22076 KiB