#P1349. Coding of Permutations

Coding of Permutations

题目翻译

题目描述

编写一个程序,用于确定任意 nn 阶排列 P=(p1,p2,,pn)P = (p_1, p_2, \cdots, p_n) 在字典序中的序号 d(P)d(P),而无需按顺序生成所有的 nn 阶排列。其中,pi{1,2,3,,n}p_i \in \{1, 2, 3, \cdots, n\},且 n50n \leq 50。当 n=4n = 4 时,所有 4 阶排列按字典序排列及其对应的序号如下图所示。

例如:若 P=(2,3,4,1)P = (2, 3, 4, 1),则 d(P)=10d(P) = 10;若 P=(4,2,1,3)P = (4, 2, 1, 3),则 d(P)=21d(P) = 21

输入

输入格式为 (n,P)(n, P)。输入文件中可能有多个输入,每个输入占一行,以 1-1 表示输入结束。PP 以列表形式给出。

输出

输出 d(P)d(P),输出结果应在一行中,各结果之间用逗号分隔。

输入样例

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

输出样例

15,67

题目来源

西安 2002 年竞赛题目