求调
  • 板块学术版
  • 楼主New_Void
  • 当前回复0
  • 已保存回复0
  • 发布时间2025/1/26 00:06
  • 上次更新2025/1/26 14:15:43
查看原帖
求调
1048576
New_Void楼主2025/1/26 00:06
#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

2025/1/26 00:06
加载中...