217932026-01-14 07:53:20vyrallHírláncpypy3Időlimit túllépés 20/80587ms89212 KiB
n = int(input())
hirlanc = [0] + [int(i) for i in input().split()]
count = [-1] + n * [0]
state = [''] + n * ["U"]
stack = []
circle = []

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
1Elfogadva37ms19692 KiB
subtask220/20
2Elfogadva65ms22340 KiB
3Elfogadva70ms22664 KiB
4Elfogadva65ms22140 KiB
5Elfogadva59ms22172 KiB
6Elfogadva75ms22080 KiB
7Elfogadva74ms22788 KiB
8Elfogadva61ms22448 KiB
9Elfogadva64ms22844 KiB
10Elfogadva61ms22756 KiB
11Elfogadva65ms22996 KiB
12Elfogadva61ms22996 KiB
subtask30/18
13Időlimit túllépés579ms43720 KiB
14Elfogadva321ms89212 KiB
15Futási hiba157ms44836 KiB
16Futási hiba157ms44852 KiB
17Futási hiba164ms44772 KiB
18Futási hiba157ms44680 KiB
19Futási hiba138ms44680 KiB
20Futási hiba138ms44704 KiB
21Futási hiba155ms44788 KiB
22Futási hiba137ms44736 KiB
subtask40/42
23Elfogadva39ms19648 KiB
24Elfogadva65ms22340 KiB
25Elfogadva70ms22664 KiB
26Elfogadva65ms22140 KiB
27Elfogadva59ms22172 KiB
28Elfogadva75ms22080 KiB
29Elfogadva74ms22788 KiB
30Elfogadva61ms22448 KiB
31Elfogadva64ms22844 KiB
32Elfogadva61ms22756 KiB
33Elfogadva65ms22996 KiB
34Elfogadva61ms22996 KiB
35Időlimit túllépés579ms43720 KiB
36Elfogadva321ms89212 KiB
37Futási hiba157ms44836 KiB
38Futási hiba157ms44852 KiB
39Futási hiba164ms44772 KiB
40Futási hiba157ms44680 KiB
41Futási hiba138ms44680 KiB
42Futási hiba138ms44704 KiB
43Futási hiba155ms44788 KiB
44Futási hiba137ms44736 KiB
45Időlimit túllépés586ms43720 KiB
46Időlimit túllépés586ms43768 KiB
47Időlimit túllépés587ms43964 KiB
48Futási hiba153ms44984 KiB
49Futási hiba137ms44736 KiB
50Futási hiba136ms44992 KiB
51Futási hiba138ms44736 KiB
52Futási hiba157ms44880 KiB
53Futási hiba140ms44756 KiB
54Futási hiba156ms44916 KiB