217922026-01-14 07:50:51vyrallHírláncpypy3Időlimit túllépés 20/80587ms89240 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())
            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
2Elfogadva68ms22000 KiB
3Elfogadva76ms22716 KiB
4Elfogadva68ms22096 KiB
5Elfogadva61ms22196 KiB
6Elfogadva68ms22248 KiB
7Elfogadva71ms22920 KiB
8Elfogadva67ms22440 KiB
9Elfogadva65ms22740 KiB
10Elfogadva68ms22760 KiB
11Elfogadva63ms22876 KiB
12Elfogadva70ms23012 KiB
subtask30/18
13Időlimit túllépés586ms43768 KiB
14Elfogadva326ms89240 KiB
15Futási hiba157ms44904 KiB
16Futási hiba157ms44884 KiB
17Futási hiba165ms44728 KiB
18Futási hiba157ms44840 KiB
19Futási hiba158ms44880 KiB
20Futási hiba138ms44708 KiB
21Futási hiba158ms44744 KiB
22Futási hiba137ms44736 KiB
subtask40/42
23Elfogadva39ms19668 KiB
24Elfogadva68ms22000 KiB
25Elfogadva76ms22716 KiB
26Elfogadva68ms22096 KiB
27Elfogadva61ms22196 KiB
28Elfogadva68ms22248 KiB
29Elfogadva71ms22920 KiB
30Elfogadva67ms22440 KiB
31Elfogadva65ms22740 KiB
32Elfogadva68ms22760 KiB
33Elfogadva63ms22876 KiB
34Elfogadva70ms23012 KiB
35Időlimit túllépés586ms43768 KiB
36Elfogadva326ms89240 KiB
37Futási hiba157ms44904 KiB
38Futási hiba157ms44884 KiB
39Futási hiba165ms44728 KiB
40Futási hiba157ms44840 KiB
41Futási hiba158ms44880 KiB
42Futási hiba138ms44708 KiB
43Futási hiba158ms44744 KiB
44Futási hiba137ms44736 KiB
45Időlimit túllépés587ms43680 KiB
46Időlimit túllépés587ms43824 KiB
47Időlimit túllépés584ms43968 KiB
48Futási hiba153ms44988 KiB
49Futási hiba153ms44752 KiB
50Futási hiba136ms44728 KiB
51Futási hiba140ms44844 KiB
52Futási hiba137ms44804 KiB
53Futási hiba156ms44752 KiB
54Futási hiba156ms44924 KiB