51452023-04-20 13:02:23anonMágikus sorozatcpp17Hibás válasz 15/100138ms13864 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
        {
            if(j && a[i - j + 1] == 2)
                a[i] = 3;
            else
                a[i] = 2;

            j = 0;
            i++;
        }
    }

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

    cout << endl;

    return 0;
}

RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1688 KiB
2Elfogadva6ms2204 KiB
subtask215/15
3Elfogadva3ms2316 KiB
4Elfogadva3ms2272 KiB
5Elfogadva3ms2336 KiB
subtask30/15
6Elfogadva3ms2428 KiB
7Elfogadva3ms2776 KiB
8Elfogadva2ms2644 KiB
9Elfogadva2ms2636 KiB
10Hibás válasz3ms2768 KiB
subtask40/30
11Hibás válasz3ms2900 KiB
12Elfogadva3ms2900 KiB
13Hibás válasz3ms3224 KiB
14Hibás válasz3ms3168 KiB
subtask50/40
15Elfogadva90ms12480 KiB
16Hibás válasz90ms12692 KiB
17Hibás válasz93ms12700 KiB
18Hibás válasz97ms12712 KiB
19Hibás válasz107ms12588 KiB
20Hibás válasz112ms12840 KiB
21Hibás válasz115ms13104 KiB
22Hibás válasz112ms13032 KiB
23Hibás válasz115ms13312 KiB
24Hibás válasz94ms13368 KiB
25Hibás válasz97ms13240 KiB
26Hibás válasz105ms13452 KiB
27Hibás válasz82ms12404 KiB
28Elfogadva96ms13652 KiB
29Elfogadva93ms13572 KiB
30Elfogadva138ms13676 KiB
31Elfogadva119ms13788 KiB
32Elfogadva100ms13864 KiB