#include <bits/stdc++.h>
using namespace std;
vector<pair<int,int> > v;
bool cmp(pair<int,int> a,pair<int,int> b){
return a.first<b.first;
}
int main(){
int n,cnt=0;
cin>>n;
int arr[n+1];
for (int i=1;i<=n;i++){
cin>>arr[i];
}
for (int i=1;i<=n;i++){
if (arr[i]!=i){
cnt++;
v.emplace_back(min(arr[i],arr[arr[i]]),max(arr[arr[i]],arr[i]));
swap(arr[i],arr[arr[i]]);
}
}
sort(v.begin(),v.end(),cmp);
cout<<cnt<<endl;
if (cnt==0){
return 0;
}
for (auto i:v){
cout<<i.first<<" "<<i.second<<endl;
}
return 0;
}
这是题目