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;
}