Amy 有一副包含 $N$ 张牌的牌组,牌面数值为 $1$ 到 $N$。她排列这副牌,使得牌面数值序列中不存在长度为 $3$ 的下降子序列。例如,序列 $1, 5, 4, 6, 3, 2$ 是不合法的,因为 $5, 3, 2$ 是一个长度为 $3$ 的下降子序列。
Amy 现在把这副牌交给 Ben。Ben 知道这副牌不存在长度为 $3$ 的下降子序列,但他不知道具体的排列顺序。他想要找到数值为 $1$ 的牌。他通过随机选择一张牌,翻开查看其数值,然后重复此过程,直到找到数值为 $1$ 的牌。在每一步中,Ben 都会选择一张牌,以最小化他在最坏情况下需要检查的牌数。
后来 Ben 告诉你,他运气不好,检查了所有 $N$ 张牌才找到数值为 $1$ 的牌。给定他检查牌的顺序,每张牌的数值是多少?如果有多种可能性,请选择字典序最大的那一种。
如果牌组 $A$ 在第一个不同的位置上的数值大于牌组 $B$ 在该位置上的数值,则称牌组 $A$ 的字典序大于牌组 $B$。
示例: $N = 3$,Ben 检查牌的顺序为 $2, 1, 3$(索引从 $1$ 开始)。牌的数值必然是:$2, 3, 1$。
说明: 如果第 $2$ 张牌的数值为 $1$,那么 Ben 会立即停止。如果第 $2$ 张牌的数值为 $2$,那么 Ben 会知道第 $1$ 张牌必然是 $1$,因为序列 $(3, 2, 1)$ 是一个长度为 $3$ 的下降子序列,因此不可能是原排列。无论哪种情况,Ben 都不需要检查 $3$ 次。因此,我们可以推断第 $2$ 张牌的数值必然是 $3$。同理,第 $1$ 张牌的数值不可能是 $1$,否则 Ben 可以提前停止。因此,牌的数值必然是 $2, 3, 1$。
输入格式
输入的第一行包含测试用例的数量 $T$。接下来是 $T$ 个测试用例。每个测试用例的第一行包含一个整数 $N$,表示牌组中牌的数量。下一行包含 $N$ 个由空格分隔的整数,描述 Ben 检查牌的顺序:第一个整数表示他检查的第一张牌的 $1$-基索引,第二个整数表示他检查的第二张牌的 $1$-基索引,依此类推。
输出格式
对于每个测试用例,输出一行 "Case #x: y",其中 $x$ 是用例编号(从 $1$ 开始),$y$ 是牌的数值序列,以空格分隔。
数据范围
$1 \le T \le 100$
对于给定的猜测序列,至少存在一个满足问题所有约束的牌组,包括 Ben 的策略需要他检查 $N$ 张牌这一约束。
内存限制:1GB。
小数据集(测试集 1 - 可见;20 分)
$1 \le N \le 8$
时间限制:6 秒。
大数据集(测试集 2 - 隐藏;22 分)
$1 \le N \le 300$
时间限制:12 秒。
样例
样例输入 1
3 3 2 1 3 1 1 3 3 2 1
样例输出 1
Case #1: 2 3 1 Case #2: 1 Case #3: 1 3 2