#6828. 密钥重组

密钥重组

密钥重组

题目描述

某安全系统中保存了 n 个不同的数字标记。

系统需要将这些数字标记重新排列,生成若干个长度为 n 的密钥序列。

一个合法的密钥序列需要满足:

  1. 每个数字标记都必须出现;
  2. 每个数字标记只能出现一次;
  3. 数字标记出现的位置不同,则认为是不同的密钥序列。

请你编写程序,计算系统一共可以生成多少个不同的合法密钥序列。

注意:你只需要输出密钥序列的数量,不需要输出具体的密钥序列。


输入格式

第一行输入一个整数 n,表示数字标记的数量。

第二行输入 n 个互不相同的整数,表示这些数字标记:

a1 a2 ... an

输出格式

输出一个整数,表示可以生成的不同合法密钥序列数量。


数据范围

1 ≤ n ≤ 10
1 ≤ ai ≤ 10^9

保证所有 ai 互不相同。


样例输入 1

3
4 7 9

样例输出 1

6

样例解释

使用数字标记 4、7、9 可以组成以下密钥序列:

4 7 9
4 9 7
7 4 9
7 9 4
9 4 7
9 7 4

因此共有 6 个不同的合法密钥序列。


样例输入 2

4
15 3 28 10

样例输出 2

24