52462023-04-23 21:07:23nmarciMágikus sorozatcpp11Hibás válasz 15/100137ms16012 KiB
#include <bits/stdc++.h>

using namespace std;
using ll = long long int;

const ll mod = 1e9 + 7;

int z[300100], a[300100];

int main(){
    int n;
    cin >> n;
    for(int i = 1; i <= n; ++i){
        cin >> z[i];
    }
    a[1] = 1;
    int index = 0, maxind = 0;
    for(int i = 2; i <= n; ++i){
        if(z[i] > 0){
            maxind = z[i] + 1;
            index = 1;
        }
        if(index > 0){
            a[i] = a[index];
            ++index;
            if(index == maxind){
                index = 0;
            }
        }
        else{
            if(a[maxind] == 2){
                a[i] = 3;
            }
            else{
                a[i] = 2;
            }
            maxind = 0;
        }
    }
    for(int i = 1; i <= n; ++i){
        cout << a[i] << " ";
    }
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms2164 KiB
2Elfogadva6ms2392 KiB
subtask215/15
3Elfogadva4ms2556 KiB
4Elfogadva4ms2928 KiB
5Elfogadva4ms2888 KiB
subtask30/15
6Elfogadva3ms3020 KiB
7Elfogadva3ms3148 KiB
8Elfogadva3ms3408 KiB
9Elfogadva3ms3416 KiB
10Hibás válasz3ms3612 KiB
subtask40/30
11Hibás válasz4ms3724 KiB
12Elfogadva3ms3736 KiB
13Hibás válasz3ms3740 KiB
14Hibás válasz3ms3996 KiB
subtask50/40
15Elfogadva90ms9348 KiB
16Hibás válasz90ms10040 KiB
17Hibás válasz93ms10932 KiB
18Hibás válasz97ms11804 KiB
19Hibás válasz107ms13036 KiB
20Hibás válasz112ms14280 KiB
21Hibás válasz118ms15408 KiB
22Hibás válasz114ms15736 KiB
23Hibás válasz115ms15684 KiB
24Hibás válasz93ms15684 KiB
25Hibás válasz97ms15688 KiB
26Hibás válasz104ms16012 KiB
27Hibás válasz82ms15424 KiB
28Elfogadva96ms15968 KiB
29Elfogadva93ms15968 KiB
30Elfogadva137ms15968 KiB
31Elfogadva116ms15960 KiB
32Elfogadva100ms15896 KiB