- description:
问题 A: [文档]康托展开和康托展开的逆运算
题目描述
【题意】
给出正整数n(1<=n<=15)
任务一:给出n个数(1~n)的全排列,求按字典序从小到大是第几个排列;
任务二:给出一个正整数k,输出字典序从小到大的第k个排列。
【输入格式】
第一行给出一个正整数n。
第二行给出n个数,表示(1~n)的排列。两两之间用空格隔开。
第三行给出正整数k,表示要求字典序从小到大的第k个排列。
【输出格式】
第一行一个整数,输出任务一。
第二行n个整数,表示第k个排列。
【样例1输入】
4
4 1 3 2
19
【样例1输出】
20
4 1 2 3
【样例2输入】
3
3 2 1
2
【样例2输出】
6
1 3 2
AC code:
#include<cstdio>
#include<cstring>
using namespace std;
typedef