#include <bits/stdc++.h>
using namespace std;
int main(){
int n,t;
vector<int> v;
cout<<"Enter size of array\n";
cin>>n;
cout<<"Now enter "<<n<<" elements\n";
for (int i=0; i<n; ++i){
cin>>t;
v.push_back(t);
}
for (int i=0; i<n; i++){
int val = v[i];
if ((val<0)or(val>=v.size())){continue;}
int curval = v[i], nextval = v[v[i]];
while (curval!=nextval){
v[curval] = curval;
curval = nextval;
if ((curval<0)or(curval>=v.size())){continue;}
nextval = v[nextval];
}
}
cout<<"\nFinal array\n";
for (int i=0; i<v.size(); i++){
cout<<v[i]<<" ";
}
//cout<<"\n";
int ans = v.size();
for (int i=1; i<v.size(); i++){
if (v[i]!=i){
ans = i;
break;
}
}
cout<<"\n\nAns :- ";
cout<<ans<<"\n";
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBtYWluKCl7CiAgICBpbnQgbix0OwogICAgdmVjdG9yPGludD4gdjsKICAgIGNvdXQ8PCJFbnRlciBzaXplIG9mIGFycmF5XG4iOwogICAgY2luPj5uOwogICAgY291dDw8Ik5vdyBlbnRlciAiPDxuPDwiIGVsZW1lbnRzXG4iOwoKICAgIGZvciAoaW50IGk9MDsgaTxuOyArK2kpewogICAgICAgIGNpbj4+dDsKICAgICAgICB2LnB1c2hfYmFjayh0KTsKICAgIH0KCiAgICBmb3IgKGludCBpPTA7IGk8bjsgaSsrKXsKICAgICAgICBpbnQgdmFsID0gdltpXTsKICAgICAgICBpZiAoKHZhbDwwKW9yKHZhbD49di5zaXplKCkpKXtjb250aW51ZTt9CiAgICAgICAgaW50IGN1cnZhbCA9IHZbaV0sIG5leHR2YWwgPSB2W3ZbaV1dOwogICAgICAgIHdoaWxlIChjdXJ2YWwhPW5leHR2YWwpewogICAgICAgICAgICB2W2N1cnZhbF0gPSBjdXJ2YWw7CiAgICAgICAgICAgIGN1cnZhbCA9IG5leHR2YWw7CiAgICAgICAgICAgIGlmICgoY3VydmFsPDApb3IoY3VydmFsPj12LnNpemUoKSkpe2NvbnRpbnVlO30KICAgICAgICAgICAgbmV4dHZhbCA9IHZbbmV4dHZhbF07CiAgICAgICAgfQoKICAgIH0KICAgIGNvdXQ8PCJcbkZpbmFsIGFycmF5XG4iOwogICAgIGZvciAoaW50IGk9MDsgaTx2LnNpemUoKTsgaSsrKXsKICAgICAgICBjb3V0PDx2W2ldPDwiICI7CiAgICB9CiAgICAvL2NvdXQ8PCJcbiI7CiAgICBpbnQgYW5zID0gdi5zaXplKCk7CiAgICBmb3IgKGludCBpPTE7IGk8di5zaXplKCk7IGkrKyl7CiAgICAgICAgaWYgKHZbaV0hPWkpewogICAgICAgICAgICBhbnMgPSBpOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CiAgICBjb3V0PDwiXG5cbkFucyA6LSAiOwogICAgY291dDw8YW5zPDwiXG4iOwp9