73132024-01-06 21:05:15anonMexxcpp17Részben helyes 0/100115ms21888 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 = -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;
        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]) {
            if(free_places.empty()) {
                ok = false;
                goto done;
            }
            ans[free_places.top()] = j++ + lucky[i - 1];
            free_places.pop();
        }
        rs = i;
    }
    if(same) {
        switch(lucky[0]) {
            case 0:
                ok = true;
                fill(all(ans), 1);
                break;
            case 1:
                ok = true;
                break;
            default:
                ok = false;
        }
    }
    done:;
    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
2Elfogadva3ms2024 KiB
subtask20/8
3Elfogadva3ms2248 KiB
4Részben helyes3ms2444 KiB
5Elfogadva3ms2676 KiB
6Részben helyes2ms2756 KiB
7Elfogadva2ms2764 KiB
8Elfogadva3ms2884 KiB
9Elfogadva3ms2964 KiB
10Elfogadva3ms3180 KiB
11Hibás válasz3ms3260 KiB
subtask30/16
12Elfogadva3ms3388 KiB
13Elfogadva3ms3476 KiB
14Elfogadva3ms3472 KiB
15Elfogadva3ms3604 KiB
16Hibás válasz3ms3852 KiB
subtask40/32
17Elfogadva4ms4296 KiB
18Elfogadva4ms4220 KiB
19Elfogadva4ms4340 KiB
20Elfogadva4ms4508 KiB
21Elfogadva4ms4484 KiB
22Elfogadva4ms4564 KiB
23Elfogadva3ms4580 KiB
24Hibás válasz4ms4832 KiB
subtask50/44
25Elfogadva115ms20592 KiB
26Elfogadva112ms20272 KiB
27Elfogadva115ms20336 KiB
28Elfogadva114ms20372 KiB
29Elfogadva115ms20392 KiB
30Elfogadva115ms20384 KiB
31Elfogadva114ms20496 KiB
32Elfogadva115ms20392 KiB
33Elfogadva115ms20396 KiB
34Elfogadva115ms20488 KiB
35Elfogadva115ms20464 KiB
36Elfogadva67ms21484 KiB
37Hibás válasz112ms21888 KiB