5301: 【哈希表】阿里淘天2023秋招-讨厌鬼的排列

金币值:1 时间限制:10.000 s 内存限制:128 M
正确:33 提交:105 正确率:31.43% 命题人:

题目描述

讨厌鬼有一个长度为n的数组,他想知道这个数组有多少个子序列是一个排列? 

子序列的定义:数组删除若干个元素(也可以不删)后得到的新数组。 

排列的定义:长度为m的数组,1到m每个元素都出现过,且恰好出现1次。

输入格式

第一行输入一个整数n (1 < n < 10^5) 

第二行输入n个整数ai (1 < a < 10^9)

输出格式

一行一个整数,表示有多少个子序列是一个排列。由于答案过大,请将答案对10^9+7取模后输出

输入样例    复制

6
1 1 5 2 3 4

输出样例    复制

10

提示

符合要求的子序列有:{1},{1},{1,2},{1,2},{1,2,3},{1,2,3},{1,2,3,4},{1,2,3,4},{1,5,2,3,4},{1,5,2,3,4}共10个