fork(36) download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int main(){
  4. int n,t;
  5. vector<int> v;
  6. cout<<"Enter size of array\n";
  7. cin>>n;
  8. cout<<"Now enter "<<n<<" elements\n";
  9.  
  10. for (int i=0; i<n; ++i){
  11. cin>>t;
  12. v.push_back(t);
  13. }
  14.  
  15. for (int i=0; i<n; i++){
  16. int val = v[i];
  17. if ((val<0)or(val>=v.size())){continue;}
  18. int curval = v[i], nextval = v[v[i]];
  19. while (curval!=nextval){
  20. v[curval] = curval;
  21. curval = nextval;
  22. if ((curval<0)or(curval>=v.size())){continue;}
  23. nextval = v[nextval];
  24. }
  25.  
  26. }
  27. cout<<"\nFinal array\n";
  28. for (int i=0; i<v.size(); i++){
  29. cout<<v[i]<<" ";
  30. }
  31. //cout<<"\n";
  32. int ans = v.size();
  33. for (int i=1; i<v.size(); i++){
  34. if (v[i]!=i){
  35. ans = i;
  36. break;
  37. }
  38. }
  39. cout<<"\n\nAns :- ";
  40. cout<<ans<<"\n";
  41. }
Success #stdin #stdout 0s 3432KB
stdin
3
1 2 0
stdout
Enter size of array
Now enter 3 elements

Final array
0 1 2 

Ans :- 3