5144 2023. 04. 20 07:29:27 anon Mágikus sorozat cpp17 Hibás válasz 15/100 143ms 31616 KiB
#include <vector>
#include <iostream>

using ll = long long;
using namespace std;

int main()
{
    ll i, j, k, N;

    cin >> N;

    vector<ll> z(N + 1);

    for(i = 1; i <= N; i++)
        cin >> z[i];

    vector<ll> a(N + 1);
    a[1] = 1;

    i = 2;
    j = 0;

    while(i <= N)
    {
        if(z[i])
        {
            j = i;
            k = z[i];

            for(;i < j + k; i++)
                a[i] = a[i - j + 1];
        }
        else
        {
            a[i] = 2;

            if(j)
            {
                while(a[i] == a[i - j + 1]) a[i]++;
                j = 0;
            }

            i++;
        }
    }

    for(i = 1; i <= N; i++)
        cout << a[i] << ' ';

    cout << endl;

    return 0;
}

Részfeladat Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Elfogadva 3ms 1808 KiB
2 Elfogadva 6ms 2476 KiB
subtask2 15/15
3 Elfogadva 4ms 2468 KiB
4 Elfogadva 3ms 2440 KiB
5 Elfogadva 3ms 2708 KiB
subtask3 0/15
6 Elfogadva 3ms 2772 KiB
7 Elfogadva 3ms 2988 KiB
8 Elfogadva 3ms 3208 KiB
9 Elfogadva 2ms 3288 KiB
10 Hibás válasz 2ms 3292 KiB
subtask4 0/30
11 Hibás válasz 4ms 3552 KiB
12 Elfogadva 4ms 3828 KiB
13 Hibás válasz 3ms 4040 KiB
14 Hibás válasz 3ms 4000 KiB
subtask5 0/40
15 Elfogadva 90ms 14100 KiB
16 Hibás válasz 92ms 14492 KiB
17 Hibás válasz 96ms 15212 KiB
18 Hibás válasz 98ms 16140 KiB
19 Hibás válasz 108ms 17284 KiB
20 Hibás válasz 115ms 18564 KiB
21 Hibás válasz 119ms 20184 KiB
22 Hibás válasz 115ms 21360 KiB
23 Hibás válasz 119ms 22888 KiB
24 Hibás válasz 94ms 23528 KiB
25 Hibás válasz 98ms 24420 KiB
26 Hibás válasz 108ms 25508 KiB
27 Hibás válasz 82ms 25092 KiB
28 Elfogadva 97ms 26984 KiB
29 Elfogadva 93ms 27680 KiB
30 Elfogadva 143ms 29556 KiB
31 Elfogadva 119ms 30836 KiB
32 Elfogadva 101ms 31616 KiB