#L4102. 「POI 2021/2022 R1」Impreza krasnali
「POI 2021/2022 R1」Impreza krasnali
「POI 2021/2022 R1」Impreza krasnali
题目描述
小矮人又举办了一次派对。他们还是有 个人,每个人都戴一顶尖尖的帽子。每个人的帽子都是从 顶不同高度的帽子中随机选择,帽子的高度从 到 各不相同。但这次他们都坐在一张长桌的同一边。
因为小矮人们对这次派对印象深刻,当地的画家决定把这个盛况画成一幅画。为此,他需要知道每个小矮人坐在桌子的哪个位置,以及他们戴的是什么样的帽子。小矮人们记得自己的位置,但是帽子是随机分配的,他们都不记得自己的帽子有多高。他们只能告诉画家,他们桌子上的一个邻居戴的帽子有多高。
请你帮助画家写一个程序,计算出符合小矮人们的回答的帽子排列的数量。你只需要输出对 取模的结果。如果小矮人们他们的回答相互矛盾,那么正确的答案就是 。
输入格式
输入的第一行是一个整数 ,表示小矮人的数量。
第二行是 个整数 ,表示每个小矮人的回答。从左数第 个小矮人告诉画家:「我桌子上的一个邻居戴的帽子高度是 」。
输出格式
输出一行一个整数,表示符合小矮人们的回答的帽子排列的数量。你的答案应该对 取模。
样例 1
输入
5
3 4 3 4 1
输出
2
解释: 第一个小矮人描述的肯定是第二个小矮人的帽子(所以第二个小矮人的帽子是 ),第五个小矮人描述的肯定是第四个小矮人的帽子(所以第四个小矮人的帽子是 )。另外,第二个和第四个小矮人都记得有一顶 号的帽子,所以那肯定是第三个小矮人的帽子。剩下的就是两种可能的排列方式,把 号和 号的帽子分别放在第一个和第五个小矮人的头上,或者反过来。
数据范围与提示
子任务编号 | 附加限制 | 分值 |
---|---|---|
1 | 12 | |
2 | 30 | |
3 | ||
4 | 28 |