217982026-01-14 08:03:27vyrallHírláncpypy3Időlimit túllépés 20/80592ms89236 KiB
from sys import setrecursionlimit

n = int(input())
hirlanc = [0] + [int(i) for i in input().split()]
count = [-1] + n * [0]
state = [''] + n * ["U"]
stack = []
circle = []
setrecursionlimit(10000)

def update(cur):
    global circle
    if "A" in state[cur]:
        if "E" not in state[hirlanc[cur]]:
            stack.append(cur)
            while stack and stack[-1] not in circle:
                circle.append(stack.pop())
            if stack:
                stack.pop()
            for i in circle:
                count[i] = len(circle)
                state[i] = "E"
            circle = []
            if stack:
                update(stack[-1])
        else:
            count[cur] = count[hirlanc[cur]] + 1
            state[cur] = "E"
            if stack:
                update(stack.pop())
    elif "E" in state[cur]:
        if stack:
            last = stack.pop()
            count[last] = count[cur] + 1
            state[last] = "E"
            update(last)
    else:
        state[cur] = "A"
        stack.append(cur)
        update(hirlanc[cur])

while 0 in count:
    idx = count.index(0)
    update(idx)
    # print(f'stack: {stack}, circle: {circle}, state: {state}, count: {count}')

mx = max(count)
print(count.index(mx), mx)
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva45ms19692 KiB
subtask220/20
2Elfogadva68ms22160 KiB
3Elfogadva75ms22680 KiB
4Elfogadva61ms22236 KiB
5Elfogadva59ms22228 KiB
6Elfogadva68ms22128 KiB
7Elfogadva64ms22948 KiB
8Elfogadva68ms22288 KiB
9Elfogadva74ms22768 KiB
10Elfogadva61ms22860 KiB
11Elfogadva68ms23004 KiB
12Elfogadva68ms23144 KiB
subtask30/18
13Időlimit túllépés587ms43760 KiB
14Elfogadva367ms89236 KiB
15Időlimit túllépés523ms55444 KiB
16Időlimit túllépés589ms62352 KiB
17Futási hiba212ms59400 KiB
18Futási hiba193ms59288 KiB
19Futási hiba194ms59280 KiB
20Futási hiba194ms59288 KiB
21Futási hiba216ms59288 KiB
22Futási hiba214ms59288 KiB
subtask40/42
23Elfogadva43ms19652 KiB
24Elfogadva68ms22160 KiB
25Elfogadva75ms22680 KiB
26Elfogadva61ms22236 KiB
27Elfogadva59ms22228 KiB
28Elfogadva68ms22128 KiB
29Elfogadva64ms22948 KiB
30Elfogadva68ms22288 KiB
31Elfogadva74ms22768 KiB
32Elfogadva61ms22860 KiB
33Elfogadva68ms23004 KiB
34Elfogadva68ms23144 KiB
35Időlimit túllépés587ms43760 KiB
36Elfogadva367ms89236 KiB
37Időlimit túllépés523ms55444 KiB
38Időlimit túllépés589ms62352 KiB
39Futási hiba212ms59400 KiB
40Futási hiba193ms59288 KiB
41Futási hiba194ms59280 KiB
42Futási hiba194ms59288 KiB
43Futási hiba216ms59288 KiB
44Futási hiba214ms59288 KiB
45Időlimit túllépés583ms43720 KiB
46Időlimit túllépés586ms43696 KiB
47Időlimit túllépés584ms44056 KiB
48Időlimit túllépés592ms47028 KiB
49Időlimit túllépés592ms60464 KiB
50Futási hiba405ms59944 KiB
51Futási hiba194ms59284 KiB
52Futási hiba386ms59800 KiB
53Futási hiba192ms59304 KiB
54Futási hiba215ms59284 KiB