#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
vector<pair<ll,ll> > v;
bool cmp(pair<ll,ll> a,pair<ll,ll> b){
return a.first<b.first;
}
int main(){
int n;
cin>>n;
int arr[n+1];
for (ll i=1;i<=n;i++){
cin>>arr[i];
}
for (ll i=1;i<=n;i++){
while (arr[i]!=i){
v.emplace_back(make_pair(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<<v.size()<<endl;
for (auto i:v){
cout<<i.first<<" "<<i.second<<endl;
}
return 0;
}
题目是https://www.luogu.com.cn/problem/AT_abc350_c