7316 2024. 01. 06 22:12:29 anon Mexx cpp17 Részben helyes 94/100 116ms 21736 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, 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;
    }
    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 1828 KiB
2 Elfogadva 3ms 2060 KiB
subtask2 2/8
3 Elfogadva 3ms 2268 KiB
4 Részben helyes 3ms 2588 KiB
5 Elfogadva 3ms 2716 KiB
6 Részben helyes 3ms 2684 KiB
7 Elfogadva 3ms 2892 KiB
8 Elfogadva 3ms 3100 KiB
9 Elfogadva 3ms 3312 KiB
10 Elfogadva 3ms 3356 KiB
11 Elfogadva 3ms 3420 KiB
subtask3 16/16
12 Elfogadva 3ms 3640 KiB
13 Elfogadva 3ms 3684 KiB
14 Elfogadva 3ms 3796 KiB
15 Elfogadva 3ms 3924 KiB
16 Elfogadva 3ms 3776 KiB
subtask4 32/32
17 Elfogadva 4ms 4020 KiB
18 Elfogadva 4ms 4144 KiB
19 Elfogadva 4ms 4376 KiB
20 Elfogadva 4ms 4356 KiB
21 Elfogadva 4ms 4556 KiB
22 Elfogadva 4ms 4640 KiB
23 Elfogadva 4ms 5052 KiB
24 Elfogadva 3ms 5172 KiB
subtask5 44/44
25 Elfogadva 112ms 20920 KiB
26 Elfogadva 114ms 20512 KiB
27 Elfogadva 114ms 20380 KiB
28 Elfogadva 112ms 20496 KiB
29 Elfogadva 115ms 20484 KiB
30 Elfogadva 114ms 20368 KiB
31 Elfogadva 112ms 20412 KiB
32 Elfogadva 112ms 20384 KiB
33 Elfogadva 115ms 20380 KiB
34 Elfogadva 114ms 20528 KiB
35 Elfogadva 116ms 20384 KiB
36 Elfogadva 71ms 21416 KiB
37 Elfogadva 71ms 21736 KiB