fork(1) download
  1. def solve():
  2. n = int(input())
  3. a = [tuple(map(int, input().split())) for i in range(n)]
  4.  
  5. N = 2 * 10**5 + 5
  6. p = list(range(N))
  7. size = [1] * N
  8.  
  9. def find(x):
  10. if x != p[x]:
  11. p[x] = find(p[x])
  12. return p[x]
  13.  
  14. def unite(x, y):
  15. x = find(x)
  16. y = find(y)
  17. if x == y:
  18. return False
  19.  
  20. if size[x] < size[y]:
  21. x, y = y, x
  22. p[y] = x
  23. size[x] += size[y]
  24. return True
  25.  
  26. s_indices = []
  27.  
  28. for i in range(n):
  29. u, v = a[i]
  30. if unite(u, v):
  31. s_indices.append(i + 1)
  32.  
  33. print(len(s_indices))
  34. print(*s_indices)
  35.  
  36. # Main
  37. t = int(input())
  38. for _ in range(t):
  39. solve()
  40.  
Success #stdin #stdout 0.12s 30284KB
stdin
2
1
1 2
4
1 2
2 3
1 3
3 5
stdout
1
1
3
1 2 4