Xâu dấu ngoặc không cân bằng

View as PDF

Time limit: 1.0s , Memory limit: 256M , Points: 10 (partial)

Bi đang học lập trình, lỗi hay gắp nhất khi viết code là sử dụng dấu ngoặc (phép kết hợp) và dấu ngoặc của hàm. Lỗi là viết thiếu hoặc dư hay nói cách khác là không đúng một xâu dấu ngoặc cân bằng.

Có nhiều cách để định nghĩa một xâu dấu ngoặc là cân bằng. Cách dễ nhất là số lượng dấu mở ngoặc '(' bằng số lượng dấu đóng ngoặc ')', và với bất kì chuỗi tiền tố nào, số lượng dấu mở ngoặc đơn '(' phải lớn hơn hoặc bằng số lượng dấu đóng ngoặc đơn ')'. Trong những ví dụ sau đây, những chuỗi ở bên dưới là chuỗi cân bằng:

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

Những chuỗi sau đây là chuỗi không cân bằng:

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

Hãy lập trình biến đổi xâu dấu ngoặc thành cân bằng.

Input

Dòng duy nhất chứa xâu dấu ngoặc đơn có độ dài tối đa là 10^5 kí tự.

Output

In ra một số tự nhiên duy nhất là số lượng dấu ngoặc đơn nhỏ nhất cần phải được đổi chiều để biến đổi xâu ban đầu thành xâu dấu ngoặc cân bằng.

Samples

Sample Input 1
())(
Sample Output 1
2

Comments