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