#P1068. Parencodings

Parencodings

描述

S=s1s2s2nS = s_1 s_2 \ldots s_{2n} 是一个格式正确的括号字符串。SS 可以用两种不同的方式编码:

  • 通过一个整数序列 P=p1p2pnP = p_1 p_2 \ldots p_n,其中 pip_i 表示在 SS 中第 ii 个右括号之前的左括号数量(P-序列)。
  • 通过一个整数序列 W=w1w2wnW = w_1 w_2 \ldots w_n,其中对于 SS 中的每个右括号,假设为 aa,我们关联一个整数,该整数是从 aa 的匹配左括号到 aa 之间的右括号数量(W-序列)。

以下是上述编码的一个示例:

S		(((()()())))

P-sequence	    4 5 6666

W-sequence	    1 1 1456

编写一个程序,将格式正确的字符串的 P-序列转换为同一字符串的 W-序列。

输入

输入的第一行包含一个整数 tt1t101 \leq t \leq 10),表示测试用例的数量,随后是每个测试用例的输入数据。每个测试用例的第一行是一个整数 nn1n201 \leq n \leq 20),第二行是一个格式正确的字符串的 P-序列。它包含 nn 个正整数,用空格分隔,表示 P-序列。

输出

输出文件包含与测试用例数量相同的行数。对于每个测试用例,输出行应包含 nn 个整数,描述与给定 P-序列对应的字符串的 W-序列。

输入数据 1

2
6
4 5 6 6 6 6
9
4 6 6 6 6 8 9 9 9

输出数据 1

1 1 1 4 5 6
1 1 2 4 5 1 1 3 9

来源

德黑兰 2001