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 | Összpont | Teszt | Verdikt | Idő | Memória | ||
|---|---|---|---|---|---|---|---|
| subtask1 | 0/0 | ||||||
| 1 | Elfogadva | 45ms | 19692 KiB | ||||
| subtask2 | 20/20 | ||||||
| 2 | Elfogadva | 68ms | 22160 KiB | ||||
| 3 | Elfogadva | 75ms | 22680 KiB | ||||
| 4 | Elfogadva | 61ms | 22236 KiB | ||||
| 5 | Elfogadva | 59ms | 22228 KiB | ||||
| 6 | Elfogadva | 68ms | 22128 KiB | ||||
| 7 | Elfogadva | 64ms | 22948 KiB | ||||
| 8 | Elfogadva | 68ms | 22288 KiB | ||||
| 9 | Elfogadva | 74ms | 22768 KiB | ||||
| 10 | Elfogadva | 61ms | 22860 KiB | ||||
| 11 | Elfogadva | 68ms | 23004 KiB | ||||
| 12 | Elfogadva | 68ms | 23144 KiB | ||||
| subtask3 | 0/18 | ||||||
| 13 | Időlimit túllépés | 587ms | 43760 KiB | ||||
| 14 | Elfogadva | 367ms | 89236 KiB | ||||
| 15 | Időlimit túllépés | 523ms | 55444 KiB | ||||
| 16 | Időlimit túllépés | 589ms | 62352 KiB | ||||
| 17 | Futási hiba | 212ms | 59400 KiB | ||||
| 18 | Futási hiba | 193ms | 59288 KiB | ||||
| 19 | Futási hiba | 194ms | 59280 KiB | ||||
| 20 | Futási hiba | 194ms | 59288 KiB | ||||
| 21 | Futási hiba | 216ms | 59288 KiB | ||||
| 22 | Futási hiba | 214ms | 59288 KiB | ||||
| subtask4 | 0/42 | ||||||
| 23 | Elfogadva | 43ms | 19652 KiB | ||||
| 24 | Elfogadva | 68ms | 22160 KiB | ||||
| 25 | Elfogadva | 75ms | 22680 KiB | ||||
| 26 | Elfogadva | 61ms | 22236 KiB | ||||
| 27 | Elfogadva | 59ms | 22228 KiB | ||||
| 28 | Elfogadva | 68ms | 22128 KiB | ||||
| 29 | Elfogadva | 64ms | 22948 KiB | ||||
| 30 | Elfogadva | 68ms | 22288 KiB | ||||
| 31 | Elfogadva | 74ms | 22768 KiB | ||||
| 32 | Elfogadva | 61ms | 22860 KiB | ||||
| 33 | Elfogadva | 68ms | 23004 KiB | ||||
| 34 | Elfogadva | 68ms | 23144 KiB | ||||
| 35 | Időlimit túllépés | 587ms | 43760 KiB | ||||
| 36 | Elfogadva | 367ms | 89236 KiB | ||||
| 37 | Időlimit túllépés | 523ms | 55444 KiB | ||||
| 38 | Időlimit túllépés | 589ms | 62352 KiB | ||||
| 39 | Futási hiba | 212ms | 59400 KiB | ||||
| 40 | Futási hiba | 193ms | 59288 KiB | ||||
| 41 | Futási hiba | 194ms | 59280 KiB | ||||
| 42 | Futási hiba | 194ms | 59288 KiB | ||||
| 43 | Futási hiba | 216ms | 59288 KiB | ||||
| 44 | Futási hiba | 214ms | 59288 KiB | ||||
| 45 | Időlimit túllépés | 583ms | 43720 KiB | ||||
| 46 | Időlimit túllépés | 586ms | 43696 KiB | ||||
| 47 | Időlimit túllépés | 584ms | 44056 KiB | ||||
| 48 | Időlimit túllépés | 592ms | 47028 KiB | ||||
| 49 | Időlimit túllépés | 592ms | 60464 KiB | ||||
| 50 | Futási hiba | 405ms | 59944 KiB | ||||
| 51 | Futási hiba | 194ms | 59284 KiB | ||||
| 52 | Futási hiba | 386ms | 59800 KiB | ||||
| 53 | Futási hiba | 192ms | 59304 KiB | ||||
| 54 | Futási hiba | 215ms | 59284 KiB | ||||