题目描述
情人节到了,Uim打算给他的后宫们准备情人节礼物。UIm一共有N(1<=N<=9)个后宫妹子(现充去死 挫骨扬灰!)。
为了维护他的后宫的稳定。他通过编程,得出了一个送礼物的最佳顺序。这个我们管不着。
然而他认为,如果什么事情做得太圆满不是什么好事。于是他希望得到 原定顺序 的 前一个字典序的序列。
输入格式
第一行一个整数N
第二行N个整数,表示原定排列
输出格式
前一个排列
输入输出样例
输入 #1复制
3 1 3 2
输出 #1复制
1 2 3
说明/提示
若当前排列已经是第一个,则输出'ERROR'(引号不输出)
[del]骗分?嗯哼哼。。。[/del]
上代码:
#include<bits/stdc++.h>
using namespace std;
int n,a[10000];
int main()
{
cin>>n;
for(int i=0;i<n;i++) //读入数据
cin>>a[i];
if(prev_permutation(a,a+n)) //如果为真就输出数组
for(int i=0;i<n;i++)
cout<<a[i]<<" ";
else cout<<"ERROR"; //否则输出ERROR
cout<<endl;
return 0;
}