Hello everyone,
I need some help in figuring out what’s wrong with my code on problem Find Lexicographically Smallest Permutation(IITKWPCI)
problem link: https://www.spoj.com/problems/IITKWPCI/
my solution(Python)
> def find(node):
> while p[node[1]] != node[1]:
> p[node[1]] = p[p[node[1]]]
> node = (node[0],p[node[1]])
> return node[1]
>
> def union(n1,n2):
> p1 = find(n1)
> p2 = find(n2)
>
> if p1 != p2: p[p2] = p1
>
>
> lim = int(1e6) + 5
> for _ in range(int(input())):
>
>
> n,m = map(int,input().split())
> arr = list(map(int,input().split()))
> arr = [(arr[i],i) for i in range(n)]
> p = [i for i in range(n)]
> res = [list() for i in range(n)]
> h = [0] * n
> for i in range(m):
> a,b = map(int,input().split())
> a -= 1
> b -= 1
> union(arr[a],arr[b])
>
> for each in arr:
> k = find(each)
> res[k].append(each[0])
>
> for i in range(n):
> res[i].sort()
>
> for each in arr:
> k = find(each)
> print(res[k][h[k]], end = " ")
> h[k] += 1
> print()