Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2019
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.68 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2.  
  3. #define int long long
  4.  
  5. using namespace std;
  6.  
  7.  
  8. int32_t main() {
  9. int q; cin >> q;
  10. while(q--) {
  11. int n; cin >> n; vector<int> p(n);
  12. for (int i = 0; i < n; i++) {
  13. cin >> p[i];
  14. p[i]--;
  15. }
  16. vector<int> ans(n, -1);
  17. for (int i = 0; i < n; i++)
  18. if (ans[i] == -1) {
  19. int j = i, tmp = 0;
  20. while (p[j] != i) {
  21. j = p[j];
  22. tmp++;
  23. }
  24. ans[i] = tmp; j = i;
  25. while (p[j] != i) {
  26. j = p[j];
  27. ans[j] = tmp;
  28. }
  29. }
  30. for (int i = 0; i < n; i++)
  31. cout << ans[i] + 1 << " ";
  32. cout << "\n";
  33. }
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement