题目描述
给定两个整数 N 和 K,求将所有由整数 1∼K 组成的排列按照字典序从小到大排序后排在第 N 位的排列。
本题中,排列的编号从 0 开始,即:排列 {1,2,…,K} 是第 0 个排列,排列 {K,K−1,…,2,1} 是第 N!−1 个排列。
由于 N 可能很大,所以我们用 K 个整数 S1,S2,…,SK 来表示 N,规定 N 的计算方式如下:
n=i=1∑KSi×(K−i)!
输入格式
第一行,一个整数 K(1≤k≤105)。
第二行,K 个整数 S1,S2,…,SK。
输出格式
输出共一行,包含 K 个整数,两两之间以一个空格分隔,表示这个排列。
样例
3
2 1 0
3 2 1
3
1 0 0
2 1 3
4
2 1 1 0
3 2 4 1
说明/提示
数据规模与约定
- 对于 20% 的数据,n≤10
- 对于 50% 的数据,n≤1000
- 对于 100% 的数据,1≤n≤105,且数列 p1,p2,…,pn 是一个大小为 n 的排列