样例全对,但是WA了,怎么回事
查看原帖
样例全对,但是WA了,怎么回事
1048576
New_Void楼主2025/1/25 22:59
#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;
}

2025/1/25 22:59
加载中...