Nội dung Bài tập
Mã:
BRACKETS
Tên:
Khôi phục ngoặc
Dạng thi:
oi
Thang điểm:
10 điểm
Giới hạn thời gian:
5 giây
Giới hạn bộ nhớ:
64 MB
Được tạo bởi:
phucnq


Một dãy dấu ngoặc hợp lệ là một dãy các ký tự "(" và ")" được định nghĩa như sau:

1. Dãy rỗng (không có ký tự nào) là một dãy dấu ngoặc hợp lệ

2. Nếu A là một dãy dấu ngoặc hợp lệ thì (A) là dãy dấu ngoặc hợp lệ.

    Dấu ngoặc mở và dấu ngoặc đóng hai bên dãy A được gọi là tương ứng với nhau

3. Nếu A và B là hai dãy dấu ngoặc hợp lệ thì AB là dãy dấu ngoặc hợp lệ.

 

Ví dụ: ((()))(())()() là một dãy dấu ngoặc hợp lệ. 

Các dấu mở ngoặc ở các vị trí: 1, 2, 3, 7, 8, 11, 13 tương ứng lần lượt với các dấu đóng ngoặc ở các vị trí: 6, 5, 4, 10, 9, 12, 14.

 

Ban đầu có một dãy dấu ngoặc hợp lệ, người ta viết vào dưới mỗi dấu ngoặc mở một số tự nhiên là số dấu ngoặc (cả đóng và mở) nằm giữa dấu ngoặc mở đó và dấu ngoặc đóng tương ứng:

 

(

(

(

)

)

)

(

(

)

)

(

)

(

)

4

2

0

 

 

 

2

0

 

 

0

 

0

 

Sau đó xoá đi dãy ngoặc.

 

Yêu cầu: Cho biết dãy số còn lại, hãy khôi phục lại dãy ngoặc ban đầu

 

Dữ liệu: Vào từ file văn bản NGOAC.INP

·         Dòng 1: Ghi số n là số phần tử của dãy số còn lại (n £ 10000)

·         Dòng 2: Ghi lần lượt các số trong dãy

 

Kết quả: Ghi ra file văn bản NGOAC.OUT

Gồm 1 dòng ghi dãy dấu ngoặc khôi phục được

 

Ví dụ:

Input

7

4 2 0 2 0 0 0

Output

((()))(())()()


Input

10

8 2 0 0 0 4 0 0 0 0

Output

((())()())(()())()()


    Quảng cáo
       Ngôn ngữ : 

       Theme : 
Mời bạn soạn code



		



      Ai có thể xem bài này : 

Thông tin



Phần thảo luận