CF686B题解

题意

将一个有 $n$ 个元素的序列排成非递减序列,每次操作可以指定区间进行交换,要求将他从小到大排序。

思路

从题面就能看出这题是一共简单的冒泡排序 $+$ 输出方案。

因为题目意思是可以指定区间,去间可以是一个数(我是这么理解的)所以就是冒泡排序。

只需要每次交换时都输出一下交换的两个数就可以。

代码

#include<iostream>
using namespace std;
const int N=2e4+5;
int a[N];
int main(){
    int n;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    for(int i=1;i<=n;i++){//冒泡排序
        for(int j=i+1;j<=n;j++){
            if(a[i]>a[j]){
                swap(a[i],a[j]);
                cout<<a[i]<<" "<<a[j]<<endl;//方案
            }
        }
    }
    return 0;
}
posted @ 2023-08-10 18:00  very_easy  阅读(10)  评论(0)    收藏  举报  来源