2868: 【例57.2】 上一个排列
内存限制:64 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:2
解决:2
题目描述
地球人都知道,从 $1$ 开始到 $n$ ($1≤n≤9$) 这 $n$ 个数字一共可以组成 $n!$ 个不同的排列。现在把这 $n$ 个排列按字典序从小到大排序,给出其中一个排列,求该排列的上一个排列。
输入
第一行一个整数 $n$,表示排列的长度。
第二行 $n$ 个用空格分隔的整数,为 $1$ 到 $n$ 组成的某个排列。
第二行 $n$ 个用空格分隔的整数,为 $1$ 到 $n$ 组成的某个排列。
输出
如果上一个排列存在,则输出;否则输出"
ERROR
"
样例输入 复制
4
2 1 3 4
样例输出 复制
1 4 3 2
提示
#include <bits/stdc++.h> using namespace std; int n,a[10]; int main(){ cin>>n; for (int i=1;i<=n;++i) cin>>a[i]; if (prev_permutation(a+1,a+1+n)) { for (int i=1;i<=n;++i) printf("%d ",a[i]); putchar('\n'); } else printf("ERROR\n"); return 0; }