50,782
社区成员
发帖
与我相关
我的任务
分享
import java.util.*;
public class Main{
public static void main(String []args){
Scanner sc= new Scanner(System.in);
int n=sc.nextInt();
int m=sc.nextInt();
int e[]=new int[n];
for(int i=0;i<n;i++){
e[i]=sc.nextInt();
}
while(m>0){ //进行m次全排列后的排列顺序
m--;
int one=0;
for(int i=n-1;i>=0;i--) //one表示从右到左第一个局部最大值
if(e[i]>e[i-1]){
one=i-1;
break;
}
Arrays.sort(e,one+1,n);
int p=0;
for(int i=one+1;i<n;i++)
if(e[i]>e[one]){
p=i;
break;
}
swap(e,one,p);
Arrays.sort(e,one+1,n);
}
System.out.print(e[0]);
for(int i=1;i<n;i++)
System.out.print(" "+e[i]);
}
public static void swap(int a[],int i,int j){
int temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}