51442023-04-20 07:29:27anonMágikus sorozatcpp17Hibás válasz 15/100143ms31616 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ÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1808 KiB
2Elfogadva6ms2476 KiB
subtask215/15
3Elfogadva4ms2468 KiB
4Elfogadva3ms2440 KiB
5Elfogadva3ms2708 KiB
subtask30/15
6Elfogadva3ms2772 KiB
7Elfogadva3ms2988 KiB
8Elfogadva3ms3208 KiB
9Elfogadva2ms3288 KiB
10Hibás válasz2ms3292 KiB
subtask40/30
11Hibás válasz4ms3552 KiB
12Elfogadva4ms3828 KiB
13Hibás válasz3ms4040 KiB
14Hibás válasz3ms4000 KiB
subtask50/40
15Elfogadva90ms14100 KiB
16Hibás válasz92ms14492 KiB
17Hibás válasz96ms15212 KiB
18Hibás válasz98ms16140 KiB
19Hibás válasz108ms17284 KiB
20Hibás válasz115ms18564 KiB
21Hibás válasz119ms20184 KiB
22Hibás válasz115ms21360 KiB
23Hibás válasz119ms22888 KiB
24Hibás válasz94ms23528 KiB
25Hibás válasz98ms24420 KiB
26Hibás válasz108ms25508 KiB
27Hibás válasz82ms25092 KiB
28Elfogadva97ms26984 KiB
29Elfogadva93ms27680 KiB
30Elfogadva143ms29556 KiB
31Elfogadva119ms30836 KiB
32Elfogadva101ms31616 KiB