#54291: 一個普通的python解題方法


woominytr (梧銘)


a=int(input())
b=list(map(int,str(input()).split()))
d=set()
反正只需記錄誰出現過,用set就行。
f=0 --> 群體數
for i in range(a):
    if i in d:
        continue  --> 每個都跑一遍,被記錄過就跳過。
    f+=1  -->  既然沒跑過,那先記錄群體數+1
    e=b[i]
    while True:
        if e in d:
            break -->  如果在裡面就跳出來
        else:
            d.add(e)
            e=b[e]  -->否則紀錄,接著尋找下一個