编写一个程序,用于确定任意 n 阶排列 P=(p1,p2,⋯,pn) 在字典序中的序号 d(P),而无需按顺序生成所有的 n 阶排列。其中,pi∈{1,2,3,⋯,n},且 n≤50。当 n=4 时,所有 4 阶排列按字典序排列及其对应的序号如下图所示。
例如:若 P=(2,3,4,1),则 d(P)=10;若 P=(4,2,1,3),则 d(P)=21。
输入格式为 (n,P)。输入文件中可能有多个输入,每个输入占一行,以 −1 表示输入结束。P 以列表形式给出。
输出 d(P),输出结果应在一行中,各结果之间用逗号分隔。
(4,(3,2,1,4))
(5,(3,5,1,2,4))
-1
15,67
西安 2002 年竞赛题目