CFCF2155C.The Ancient Wizards' Capes

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

nn 位巫师排成一行,从左到右编号为 11nn。每位巫师都有一件隐形斗篷,可以披在他的左侧或右侧。Harry 从巫师 11 的位置走到巫师 nn 的位置(1n1051 \le n \le 10^5),并记录下他在每个巫师位置能看到多少巫师。对于每个位置 ii,若巫师 jj 满足以下条件,则 jj 能被看到:

  • 若巫师 jj 披在左侧,则 iji \geq j
  • 若巫师 jj 披在右侧,则 iji \leq j

特别地,巫师 ii 总能被自己在第 ii 个位置看到。

Harry 的记录很古老,但在经过大量努力后你终于破译了这些数据。记录以长度为 nn 的数组 aa 给出,aia_i1ain1 \leq a_i \leq n)表示 Harry 在巫师 ii 位置能看到的巫师数量。

你的任务是,计算所有满足 Harry 记录的可能斗篷安排的方案数,结果对 676767677676\,767\,677 取模。

输入格式

每组测试包含多组用例。第一行为测试用例个数 tt1t1041 \leq t \leq 10^4)。每组测试用例:

第一行是一个整数 nn1n1051 \leq n \leq 10^5),表示数组 aa 的长度。

第二行为 nn 个整数 a1,a2,,ana_1, a_2, \ldots, a_n1ain1 \leq a_i \leq n),表示 Harry 的记录。

保证所有测试用例中 nn 的总和不超过 10510^5

输出格式

对于每组测试用例,输出一个整数,表示满足条件的斗篷安排方案数,对 676767677676\,767\,677 取模。

输入输出样例

  • 输入#1

    7
    1
    1
    4
    4 4 3 2
    3
    1 3 2
    2
    2 1
    3
    2 2 2
    3
    3 2 3
    3
    3 2 2

    输出#1

    2
    1
    0
    1
    2
    0
    0

说明/提示

下面的图片展示了在第二组测试用例中满足 Harry 记录的一种斗篷安排方式。

巫师 1 的斗篷披在左侧,巫师 2、3、4 的斗篷披在右侧。

  • 位置 1 能看到巫师 1、2、3、4。
  • 位置 2 能看到巫师 1、2、3、4。
  • 位置 3 能看到巫师 1、3、4。
  • 位置 4 能看到巫师 1、4。

因此 Harry 的记录为 [4,4,3,2][4, 4, 3, 2]。可以证明这是唯一可能的安排。

第三组测试用例中,可以证明没有任何一种斗篷安排能得到该记录。

第五组测试用例中,有两种斗篷安排符合 Harry 的记录:

  • 1231 \mid \quad \mid 2 \quad 3 \, \mid
  • 123\mid \, 1 \quad 2 \mid \quad \mid 3
首页