def walk_around_cycles(perm): t=[] m=0 while(True): i=m c=[i+1] while perm[i]: j,i=i,perm[i]-1 perm[j]=0 c.append(i+1) t.append(c) while(m=len(perm): break return t inputfile=open("in20_5.txt",'r') k=inputfile.readline() inp1=inputfile.readline().split(' ') inputfile.close() perm=[] for i in range(len(inp1)): perm.append(int(inp1[i])) cycles=walk_around_cycles(perm) ourtstr="" ourtstr=ourtstr+str(len(cycles))+"\n" for k in range(len(cycles)): ourtstr=ourtstr+str(cycles[k])+"\n" outputfile=open("out_25_20_5.txt",'w') print ourtstr outputfile.write(ourtstr) outputfile.close()