189952025-11-14 06:55:55birozsÜltetéspython3Időlimit túllépés 0/75699ms4524 KiB
N = int(input())
T = list(map(int,input().split()))
sor = []
volt = []
hiba = 0
for i in range(N):
    if i+1 not in volt and T[i] not in volt:
        sor.append([i+1,T[i]])
        volt.append(i+1)
        volt.append(T[i])
    elif i+1 in volt and T[i] in volt:
        hiba += 1
    elif i+1 not in volt and T[i] in volt:
        Elol = False
        for j in range(len(sor)):
            if sor[j][0] == T[i]:
                Elol = True
                volt.append(i+1)
                sor[j] = [i+1] + sor[j]
                break
        if not Elol:
            sor.append([i+1])
            hiba += 1
    elif i+1 in volt and T[i] not in volt:
        Vegen = False
        for j in range(len(sor)):
            if sor[j][-1] == i+1:
                Vegen = True
                volt.append(T[i])
                sor[j].append(T[i])
                break
        if not Vegen:
            sor.append([T[i]])
            hiba += 1
print(N-hiba)
szekrend = [0] * (N+1)
szek = 0
for resz in sor:
    for k in resz:
        szek += 1
        szekrend[k] = szek
for i in range(1,N+1):
    print(szekrend[i],end=" ")       


    
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva16ms3124 KiB
2Időlimit túllépés689ms4112 KiB
subtask20/5
3Hibás válasz16ms3320 KiB
4Hibás válasz17ms3032 KiB
5Hibás válasz17ms3124 KiB
6Hibás válasz16ms3312 KiB
7Hibás válasz16ms3124 KiB
subtask30/5
8Hibás válasz16ms3312 KiB
9Hibás válasz16ms3036 KiB
10Hibás válasz17ms3124 KiB
11Elfogadva17ms3124 KiB
12Hibás válasz17ms3228 KiB
subtask40/5
13Hibás válasz16ms3144 KiB
14Hibás válasz17ms3232 KiB
15Hibás válasz17ms3124 KiB
16Hibás válasz17ms3124 KiB
17Hibás válasz17ms3196 KiB
subtask50/10
18Hibás válasz17ms3232 KiB
19Hibás válasz48ms3380 KiB
20Hibás válasz48ms3468 KiB
21Hibás válasz48ms3324 KiB
22Hibás válasz46ms3316 KiB
23Hibás válasz17ms3124 KiB
24Hibás válasz17ms3312 KiB
25Hibás válasz50ms3308 KiB
26Időlimit túllépés699ms4256 KiB
27Időlimit túllépés681ms4148 KiB
subtask60/10
28Hibás válasz48ms3380 KiB
29Hibás válasz142ms3636 KiB
30Hibás válasz291ms3636 KiB
31Hibás válasz500ms3892 KiB
32Időlimit túllépés685ms3636 KiB
33Időlimit túllépés680ms3876 KiB
34Időlimit túllépés685ms3884 KiB
35Időlimit túllépés684ms3892 KiB
36Időlimit túllépés683ms4524 KiB
37Időlimit túllépés676ms4148 KiB
subtask70/40
38Hibás válasz52ms3376 KiB
39Hibás válasz165ms3636 KiB
40Hibás válasz337ms3872 KiB
41Hibás válasz574ms3892 KiB
42Időlimit túllépés685ms3636 KiB
43Időlimit túllépés680ms3892 KiB
44Időlimit túllépés677ms3892 KiB
45Időlimit túllépés688ms4152 KiB
46Időlimit túllépés675ms4148 KiB
47Időlimit túllépés684ms4400 KiB
48Időlimit túllépés679ms4400 KiB
49Időlimit túllépés686ms4404 KiB
50Időlimit túllépés677ms4400 KiB
51Időlimit túllépés684ms4400 KiB
52Időlimit túllépés681ms4400 KiB
53Időlimit túllépés686ms4400 KiB
54Időlimit túllépés680ms4392 KiB
55Időlimit túllépés685ms4400 KiB
56Időlimit túllépés679ms4388 KiB
57Időlimit túllépés683ms4404 KiB