뺄셈과 괄호
시간 제한1초메모리 제한128 MB
부호가 붙은 서로 다른 변수들의 합이 주어질 때, 모두 뺄셈인 식을 같은 값이 되도록 묶는 데 필요한 최소 괄호 쌍의 수를 구한다.
문제
뺄셈은 결합법칙이 성립하지 않는다. 예를 들어 이지만 이므로 이다. 즉 과 같은 식의 값은 뺄셈을 계산하는 순서에 따라 달라진다. 괄호가 없으면 왼쪽에서 오른쪽 순서로 계산하기로 약속하므로, 은 을 뜻한다.
다음 형태의 식이 주어진다. 여기서 각 는 또는 이며, 은 서로 다른 변수이다.
모든 부호가 뺄셈인 식 에 괄호를 넣어, 주어진 식과 동치가 되도록(모든 변수 값에 대해 두 식의 값이 같아지도록) 만들려고 한다. 괄호는 최대 쌍까지 넣을 수 있으며, 변수를 하나도 감싸지 않거나 하나만 감싸는 괄호는 넣을 수 없다.
예를 들어 과 같아지게 하려면, 에 괄호를 넣어 와 같이 만들 수 있다. 이는 가능한 여러 괄호 배치 중 하나일 뿐이며, 반드시 괄호 쌍의 개수가 최소인 배치는 아니다. 조건을 만족하는 모든 괄호 배치 중에서 사용한 괄호 쌍의 최소 개수를 구하여라.
입력
첫째 줄에 정수 이 주어진다 (). 이는 주어진 식에 있는 변수의 개수이다. 다음 개의 줄에는 각각 문자 또는 가 하나씩 주어진다. 그중 번째 줄 () 의 문자는 주어진 식에서 와 사이에 있는 부호이다. 입력으로 주어지는 식에 대해서는 조건을 만족하는 괄호 배치가 항상 존재한다고 가정해도 된다.
출력
에 괄호를 넣어 주어진 식과 동치가 되도록 만들 때 필요한 괄호 쌍의 최소 개수를 정수 하나로 출력한다.