题目描述:

题目要求:把1~n的所有排列按字典序排成一排,从中选出一个排列,假设它是正数第m个排列,希望你能回答倒数的第m个排列是什么?
例如1到3的所有排列是:
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
若选出的排列是1 2 3,则m=1,而你应该输出的排列是3 2 1.
输入描述:
第一行数字n,表示排列的长度
第二行n个数字,表示选出的排列,1<=n<=300000
输出描述:
一行n个数字,表示所求的排列

完整代码:
n = int(input())
arr = list(map(int, input().split()))

def calc(n, arr):
    result = []
    for i in range(n):
        result.append(str(n + 1 - arr[i]))
    return ' '.join(result)

print(calc(n, arr))