from sys import stdin
input=stdin.readline
def solv():
N = int(input())
C = [0]+list(map(int,input().split()))
Ginv=[[] for i in range(N+1)]
for i in range(1,N+1):
Ginv[C[i]].append(i)
best,bestx=0,0
notvisited=set(range(1,N+1))
res=[0]*(N+1)
while notvisited:
v=notvisited.pop()
cur=set()
while v not in cur:
cur.add(v)
v=C[v]
loop=set()
while v not in loop:
loop.add(v)
v=C[v]
for v in loop:
res[v]=len(loop)
if res[v]>bestx:
bestx=res[v]
best=v
notvisited.discard(v)
while loop:
tmp=set()
for v in loop:
notvisited.discard(v)
for w in Ginv[v]:
if res[w]==0:
res[w]=res[v]+1
tmp.add(w)
if res[w]>bestx:
bestx=res[w]
best=w
loop=tmp
print(best,bestx)
solv()
| Subtask | Sum | Test | Verdict | Time | Memory | ||
|---|---|---|---|---|---|---|---|
| subtask1 | 0/0 | ||||||
| 1 | Accepted | 39ms | 19440 KiB | ||||
| subtask2 | 20/20 | ||||||
| 2 | Accepted | 59ms | 22192 KiB | ||||
| 3 | Accepted | 68ms | 22216 KiB | ||||
| 4 | Accepted | 65ms | 22288 KiB | ||||
| 5 | Accepted | 61ms | 21996 KiB | ||||
| 6 | Accepted | 68ms | 22172 KiB | ||||
| 7 | Accepted | 59ms | 22060 KiB | ||||
| 8 | Accepted | 64ms | 22076 KiB | ||||
| 9 | Accepted | 57ms | 22204 KiB | ||||
| 10 | Accepted | 57ms | 22252 KiB | ||||
| 11 | Accepted | 64ms | 22252 KiB | ||||
| 12 | Accepted | 65ms | 22372 KiB | ||||
| subtask3 | 18/18 | ||||||
| 13 | Accepted | 446ms | 70220 KiB | ||||
| 14 | Accepted | 349ms | 70024 KiB | ||||
| 15 | Accepted | 451ms | 70036 KiB | ||||
| 16 | Accepted | 345ms | 71524 KiB | ||||
| 17 | Accepted | 367ms | 93264 KiB | ||||
| 18 | Accepted | 360ms | 91992 KiB | ||||
| 19 | Accepted | 474ms | 91992 KiB | ||||
| 20 | Accepted | 479ms | 91992 KiB | ||||
| 21 | Accepted | 356ms | 93084 KiB | ||||
| 22 | Accepted | 338ms | 93092 KiB | ||||
| subtask4 | 42/42 | ||||||
| 23 | Accepted | 39ms | 19656 KiB | ||||
| 24 | Accepted | 59ms | 22192 KiB | ||||
| 25 | Accepted | 68ms | 22216 KiB | ||||
| 26 | Accepted | 65ms | 22288 KiB | ||||
| 27 | Accepted | 61ms | 21996 KiB | ||||
| 28 | Accepted | 68ms | 22172 KiB | ||||
| 29 | Accepted | 59ms | 22060 KiB | ||||
| 30 | Accepted | 64ms | 22076 KiB | ||||
| 31 | Accepted | 57ms | 22204 KiB | ||||
| 32 | Accepted | 57ms | 22252 KiB | ||||
| 33 | Accepted | 64ms | 22252 KiB | ||||
| 34 | Accepted | 65ms | 22372 KiB | ||||
| 35 | Accepted | 446ms | 70220 KiB | ||||
| 36 | Accepted | 349ms | 70024 KiB | ||||
| 37 | Accepted | 451ms | 70036 KiB | ||||
| 38 | Accepted | 345ms | 71524 KiB | ||||
| 39 | Accepted | 367ms | 93264 KiB | ||||
| 40 | Accepted | 360ms | 91992 KiB | ||||
| 41 | Accepted | 474ms | 91992 KiB | ||||
| 42 | Accepted | 479ms | 91992 KiB | ||||
| 43 | Accepted | 356ms | 93084 KiB | ||||
| 44 | Accepted | 338ms | 93092 KiB | ||||
| 45 | Accepted | 432ms | 68344 KiB | ||||
| 46 | Accepted | 333ms | 67728 KiB | ||||
| 47 | Accepted | 398ms | 67920 KiB | ||||
| 48 | Accepted | 308ms | 67900 KiB | ||||
| 49 | Accepted | 319ms | 67744 KiB | ||||
| 50 | Accepted | 456ms | 68328 KiB | ||||
| 51 | Accepted | 470ms | 68772 KiB | ||||
| 52 | Accepted | 340ms | 69280 KiB | ||||
| 53 | Accepted | 324ms | 80284 KiB | ||||
| 54 | Accepted | 418ms | 77868 KiB | ||||