73172024-01-06 22:35:11anonMexxcpp17Elfogadva 100/100115ms22076 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ÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1824 KiB
2Elfogadva3ms2032 KiB
subtask28/8
3Elfogadva3ms2236 KiB
4Elfogadva3ms2460 KiB
5Elfogadva3ms2544 KiB
6Elfogadva3ms2652 KiB
7Elfogadva3ms2868 KiB
8Elfogadva3ms3080 KiB
9Elfogadva3ms3292 KiB
10Elfogadva3ms3508 KiB
11Elfogadva3ms3736 KiB
subtask316/16
12Elfogadva3ms3936 KiB
13Elfogadva3ms3932 KiB
14Elfogadva3ms3984 KiB
15Elfogadva3ms3952 KiB
16Elfogadva3ms4100 KiB
subtask432/32
17Elfogadva4ms4452 KiB
18Elfogadva4ms4560 KiB
19Elfogadva4ms4764 KiB
20Elfogadva4ms4848 KiB
21Elfogadva4ms5116 KiB
22Elfogadva4ms5020 KiB
23Elfogadva3ms5032 KiB
24Elfogadva3ms5016 KiB
subtask544/44
25Elfogadva112ms21040 KiB
26Elfogadva112ms20640 KiB
27Elfogadva112ms20664 KiB
28Elfogadva112ms20564 KiB
29Elfogadva112ms20504 KiB
30Elfogadva112ms20584 KiB
31Elfogadva114ms20752 KiB
32Elfogadva114ms20736 KiB
33Elfogadva115ms20724 KiB
34Elfogadva115ms20728 KiB
35Elfogadva115ms20792 KiB
36Elfogadva67ms21752 KiB
37Elfogadva68ms22076 KiB