Parencodings - poj 1068

來源:互聯網
上載者:User

標籤:

 
Time Limit: 1000MS   Memory Limit: 10000K
Total Submissions: 22764   Accepted: 13344

Description

Let S = s1 s2...s2n be a well-formed string of parentheses. S can be encoded in two different ways: 
qBy an integer sequence P = p1 p2...pn where pi is the number of left parentheses before the ith right parenthesis in S (P-sequence). 
qBy an integer sequence W = w1 w2...wn where for each right parenthesis, say a in S, we associate an integer which is the number of right parentheses counting from the matched left parenthesis of a up to a. (W-sequence). 

Following is an example of the above encodings: 

S(((()()())))
P-sequence 4 5 6666
W-sequence 1 1 1456

Write a program to convert P-sequence of a well-formed string to the W-sequence of the same string. 

Input

The first line of the input contains a single integer t (1 <= t <= 10), the number of test cases, followed by the input data for each test case. The first line of each test case is an integer n (1 <= n <= 20), and the second line is the P-sequence of a well-formed string. It contains n positive integers, separated with blanks, representing the P-sequence.

Output

The output file consists of exactly t lines corresponding to test cases. For each test case, the output line should contain n integers describing the W-sequence of the string corresponding to its given P-sequence.

Sample Input

264 5 6 6 6 69 4 6 6 6 6 8 9 9 9

Sample Output

1 1 1 4 5 61 1 2 4 5 1 1 3 9
這道題很簡單,一遍AC,用flag數組記錄左括弧的狀態,當是1時已經匹配,當是0時未匹配,向前尋找第一個未匹配的左括弧,記錄中間匹配的左括弧的個數
 1 #include <iostream> 2 using namespace std; 3  4 int main() { 5     int num; 6     int n; 7     int p[21]; 8     int flag[21]; 9     cin>>num;10     for(int i=0;i<num;i++){11         cin>>n;12         for(int j=0;j<n;j++){13             cin>>p[j];14             flag[j]=0;15         }16         for(int k=0;k<n;k++){17             int count=0;18             for(int m=p[k]-1;m>=0;m--){19                 if(flag[m]==0){20                     cout<<count+1<<" ";21                     flag[m]=1;22                     break;23                 }else{24                     count++;25                 }26             }27         }28         cout<<endl;29     }30     return 0;31 }

 

Parencodings - poj 1068

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.