#7023. 排列计数

    ID: 7023 远端评测题 1000ms 256MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>线下赛中学组第二届上海市青少年算法竞赛中学组

排列计数

题目描述

给定 a1,a2,,ana_1,a_2,\dots,a_n,它是一个 11nn排列,也就是说,a1a_1ana_n 这些数字互不相同且都是在 11nn 之间的整数。若将所有 11nn排列按照字典序列出,请求出 a1,a2,,ana_1,a_2,\dots,a_n 在其中的名次。

n=3n=3 时,所有排列为(按字典序罗列): 1, 2, 31, ~2, ~3 1, 3, 21, ~3, ~2 2, 1, 32, ~1, ~3 2, 3, 12, ~3, ~1 3, 1, 23, ~1, ~2 3, 2, 13, ~2, ~1 其中 3, 1, 23, ~1, ~2 的名次为 55

序列的字典序是指定义两个序列大小的一种方法。设有两个序列 x1,x2,,xnx_1,x_2,\dots,x_ny1,y2,,yny_1,y_2,\dots,y_n,若 x1x_1y1y_1 能够区分大小,则以它们的大小定义 xx 序列与 yy 序列的大小;否则,以 x2x_2y2y_2 定义两序列的大小,若 x2x_2y2y_2 仍一样大,则以 x3x_3y3y_3 区分,以此类推,直到 xnx_nyny_n

输入格式

第一行:单个正整数表示 nn; 第二行:nn 个正整数表示 a1,a2,,ana_1,a_2,\dots,a_n

输出格式

单个整数:表示输入排列在所有排列中的名次,由于数字可能很大,取答案模 109+710^9+7 的余数。

3
3 1 2
5
4
4 3 2 1
24

样例解释 2

所有排列中的最后一个排列

数据范围

  • 对于 40%40\% 的分数,1n101\leq n\leq 10
  • 对于 70%70\% 的分数,1n100001\leq n\leq 10000
  • 对于 100%100\% 的分数,1n2000001\leq n\leq 200000