#877. 括号匹配

括号匹配

括号匹配(martch.cpp)

​【​题目描述】

在一个由n对括号配对好的字符串S中,我们可以使用以下两种数字编码方式对其进行编码存储:

①P类编码:P={p1,p2,p3...,pi,...pn}。其中pi表示第i个右括号前有pi个左括号。

②W类编码:W={w1,w2,w3...,wi,...wn}。对于第i个右括号S[x],wi表示与S[x]配对的左括号到S[x]之间的右括号数(包括它自己)。

如:对于括号串S=(((()()()))),它的P类编码序列为4 5 6 6 6 6,W类编码序列为1 1 1 4 5 6。

如果已知一个括号串的P类编码序列,你能否编程求出其对应的W类编码序列呢?

【输入】

第一行一个正整数T,代表有T组输入数据。 每组测试数据输入两行,第一行输入一个正整数n,代表S中的括号对数。第二行输入n个正整数,代表该括号串的P类编码序列。

【输出】

对应每组数据输出一行。代表该组的W类编码序列。

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

【数据说明】

对于100%的数据:T<10,n<1000;