提交时间:2025-10-07 13:47:51
运行 ID: 38415
#include<bits/stdc++.h> using namespace std; struct node { int l,r; }; int a[200005],com[200005]; node cmp[1000005]; int main() { int n; cin>>n; for(int i=1;i<=n;i++) { cin>>a[i]; com[a[i]]=i; } int cnt=0; for(int i=1;i<=n;i++) { if(a[i]!=i) { cmp[++cnt].l=i; cmp[cnt].r=com[i]; swap(a[i],a[com[i]]); com[a[com[i]]]=com[i]; com[a[i]]=i; } } cout<<cnt<<'\n'; for(int i=1;i<=cnt;i++) { cout<<cmp[i].l<<' '<<cmp[i].r<<'\n'; } return 0; }