坐坐坐
TimeLimit: 2000/1000 MS (Java/Others) MemoryLimit: 32768/32768 K (Java/Others)
64-bit integer IO format:%I64d
Problem Description
在一个教室中有N张椅子排成一排,椅子上都没有人,每张椅子都有颜色,分别为蓝色或者红色。 接下来依次来了N个学生,标号依次为1,2,3,...,N。 对于每个学生,他会找一张还没有人坐的椅子坐下来。但是如果这张椅子同时满足以下三个条件他就不会去坐。
1. 这张椅子左右两边都有相邻的椅子
2. 这张椅子左右两边相邻的椅子都不是空的,也就是有人坐下了
3. 这张椅子左右两边相邻的椅子的颜色不同
如果当前的学生找不到椅子坐下,那他就会走掉。
对于当前的某个学生,他可能有很多种椅子的选择来坐。你的任务是计算有多少种不同的全部的学生都坐下来的情况。结果可能很大,输出答案对1000000007(10^9+7) 取模。
Input
输入有多组测试数据。
对于每组测试数据:
第一行为一个整数 N(1≤N≤100),第二行为 N个整数表示椅子的颜色,数的范围为0到1,0代表蓝色,1代表红色。
Output
对于每组测试数据,输出答案对1000000007(10^9+7)取模。