Coding of Permutations
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 9.765625 M,其他语言19.53125 M
64bit IO Format: %lld

题目描述

Write a program that gives us the ordinal position d(P) of any rank-n permutation P=(p1,p2卲n) in the dictionary without producing all the rank-n permutations in order, where pi{1,2,3,...,n},n<=50. When n=4, the whole rank-4 permutation in lexicographical order and the code is shown in the following figure.
For example: if P=(2,3,4,1), then d(P)=10; if P=(4,2,1,3), then d(P)=21.

输入描述:

(n, P): For more than one input in the input file, one line is for each input ,with -1 at the end. P is in the form of list.

输出描述:

d(P): It should be in the form of a line with the outputs separated by commas.
示例1

输入

复制
(4,(3,2,1,4))
(5,(3,5,1,2,4))
-1

输出

复制
15,67