P9418 [POI 2021/2022 R1] Impreza krasnali

题目背景

译自 [XXIX Olimpiada Informatyczna – I etap](https://sio2.mimuw.edu.pl/c/oi29-1/dashboard/) [Impreza krasnali](https://sio2.mimuw.edu.pl/c/oi29-1/p/imp/)。

题目描述

有 $n$ 个人依次站成一排,每个人手上都有一个数字,这 $n$ 个数字形成一个排列。 每个人会二选一地报告他左边或右边的人手上的数字。注意第一个人与第 $n$ 个人并不相邻,所以第一个人总是会报告第二个人的数字,第 $n$ 个人总是会报告第 $n-1$ 个人的数字。 现在你得到了 $n$ 个人报告的数字,求出原先的排列有多少种可能。

输入格式

第一行一个正整数 $n$。 第二行 $n$ 个整数,表示每个人报告的数字。

输出格式

一行一个整数,你的答案模 $10^9+7$。

说明/提示

对于所有数据,$2\leq n\leq 100000$。 | 子任务编号 | 附加限制 | 分数 | | :----------: | :----------: | :----------: | | 1 | $n\leq 10$ | 12 | | 2 | $n\leq 20$ | 30 | | 3 | $n\leq 1000$ | 30 | | 4 | | 28 |