给出一个 $1$ 到 $n$ 的排列 $p_1,p_2,\dots,p_n$,有些位置是未知。现在要求你把未知的位置填好,使得至少存在一个长度为$3$的子序列是等差数列。
问有多少种不同的填法,答案可能比较大,请对 $(10^9+7)$ 取模后输出。
输入有多组数据。第一行有一个整数 $T$,表示测试数据组数。然后对于每组数据:
第一行包含一个正整数 $n$ ($1 \le n \le 50$),表示排列的长度。
第二行包含 $n$ 个非负整数 $p_1,p_2,\dots,p_n$,($0 \le p_i \le n$),其中 $p_i=0$ 表示,第 $i$ 个位置未知。
保证所有数据中 $n$ 的和不超过 $50$。
对于每组数据,输出一个正整数表示答案。
2 3 0 0 0 7 1 0 3 0 0 6 0
2 21
在第一组数据中,只有 $1,2,3$ 和 $3,2,1$ 这两种排列是满足条件的填法。
在第二组数据中,$1,4,3,2,7,6,5$ 是一种满足条件的填法,因为 $1,4,7$ 是它的子序列且也是等差数列;但若填成 $1,5,3,2,7,6,4$,则不满足条件。