Uim的情人节礼物·其之壱
题目描述
情人节到了,Uim打算给他的后宫们准备情人节礼物。UIm一共有N(1<=N<=9)个后宫妹子(现充去死 挫骨扬灰!)。
为了维护他的后宫的稳定。他通过编程,得出了一个送礼物的最佳顺序。这个我们管不着。
然而他认为,如果什么事情做得太圆满不是什么好事。于是他希望得到 原定顺序 的 前一个字典序的序列。
输入格式
第一行一个整数N
第二行N个整数,表示原定排列
输出格式
前一个排列
样例 #1
样例输入 #1
3
1 3 2
样例输出 #1
1 2 3
#include <bits/stdc++.h>
using namespace std;
#define de(x) cout<<x<<" ";
#define Pu puts("");
#define sf(x) scanf("%d",&x);
typedef long long ll;
const int N=3e6+10,mod=100003;
int n,m,ans;
int a[N],b[N],c[N];
int main(){
cin>>n;
for(int i=1;i<=n;i++){
sf(a[i])
b[i]=i;
}
int cnt=0,f;
do{//刚开始是不做调整
cnt++;//判断这是否是第一个
f=1;//判断是否找到
for(int i=1;i<=n;i++){
if(b[i]!=a[i]){
f=0;
break;
}
}
if(f==1&&cnt==1){
printf("ERROE\n");
return 0;
}else if(f==1){
for(int i=1;i<=n;i++){
printf("%d ",c[i]);
}
}
for(int i=1;i<=n;i++) c[i]=b[i];//记录上一个
}while(next_permutation(b+1,b+n+1));
}