Nim và Grundy

View as PDF

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

Lưu ý: Bài toán này không chia Subtask.

Nim và Grundy đang chơi trò chơi với một đống các viên đá. Grundy tiến hành các lượt chơi được biểu thị bằng xâu s độ dài n như sau:

  • Nếu s_i= "+", Grundy tiến hành thêm 1 viên đá vào đống, ngược lại nếu s_i = "-", Grundy lấy một viên đá ra khỏi đống (trước lúc thực hiện thao tác này, đống phải có ít nhất một viên đá).

Sau khi thực hiện tất cả n lượt chơi, Nim tiến hành đếm số lượng viên đá trong đống. Cả hai muốn biết rằng nên có bao nhiêu viên đá ở đống đá ban đầu để số viên đá thu được sau trò chơi đạt giá trị nhỏ nhất.

Bạn hãy giúp Nim và Grundy xác định số lượng viên đá nhỏ nhất có thể sau khi trò chơi kết thúc.

Input

  • Dòng đầu tiên chứa số nguyên n (1 \le n \le 10^5).
  • Dòng thứ hai chứa xâu s độ dài n chỉ chứa một trong hai ký tự "+" hoặc "-".

Output

  • In ra số lượng viên đá nhỏ nhất có thể sau khi trò chơi kết thúc.

Examples

Sample Input 1
3
-+-
Sample Output 1
0
Sample Input 2
4
++++
Sample Output 2
4

Notes

Trong ví dụ thứ nhất, xét trường hợp ban đầu đống có 1 viên đá, trò chơi diễn ra như sau:

  • Lượt thứ nhất, Grundy lấy ra 1 viên đá từ đống.
  • Lượt thứ hai, Grundy thêm 1 viên đá vào đống.
  • Lượt thứ ba, Grundy lấy ra 1 viên đá từ đống.

Sau khi trò chơi kết thúc, trong đống có tổng cộng 0 viên đá. Lưu ý rằng ban đầu đống không thể có 0 viên đá, vì trước khi thực hiện thao tác lấy đá ra khỏi đống thì trong đống phải có ít nhất 1 viên đá.


Comments