Advertisement
Guest User

Untitled

a guest
Apr 21st, 2018
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.78 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8. int n;
  9. cin >> n;
  10.  
  11. vector<int> v(n);
  12. for(int i = 0; i < n; i++) {
  13. cin >> v[i];
  14. v[i]--;
  15. }
  16. vector<bool> b(n);
  17.  
  18. vector<string> s;
  19. int ind = 0;
  20.  
  21. for(int i = 0; i < n; i++) {
  22. if(b[i] == false) {
  23. int j = i;
  24. b[j] = true;
  25. string str(to_string(j + 1) + " -> " + to_string(v[j] + 1));
  26. while(v[j] != i){
  27. j = v[j];
  28. b[j] = true;
  29. if(v[j] != i) str += " -> " + to_string(v[j] + 1);
  30. }
  31. s.push_back(str);
  32. ind++;
  33. }
  34. }
  35. cout << ind << endl;
  36. for(int i = 0; i < ind; i++) {
  37. cout << s[i] << endl;
  38. }
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement