인쇄 회로 기판

아직 제출이 없습니다시간 제한3초메모리 제한128 MB

문제

Bytel 사는 직렬-병렬(series-parallel) 전자 회로를 생산하기 시작했다. 이러한 회로는 전자 소자(unit), 소자들을 잇는 연결선(connection), 그리고 두 개의 전원 연결선으로 이루어진다. 직렬-병렬 회로는 다음 중 하나의 형태를 가진다.

  • 하나의 소자;

  • 여러 개의 더 작은 직렬-병렬 회로를 직렬로 연결한 것;

  • 두 개의 분기 소자(branching unit)로 여러 개의 더 작은 직렬-병렬 회로를 병렬로 연결한 것.

회로는 양면 인쇄 회로 기판에 실장되므로, 각 연결선은 기판의 윗면 또는 아랫면 중 한쪽으로만 지나간다. 제조 비용을 낮추기 위해 가능한 한 많은 연결선을 아랫면으로 보내야 하지만, 모든 소자에는 윗면에서 오는 연결선이 적어도 하나는 닿아야 한다.

다음을 수행하는 프로그램을 작성하라.

  • 직렬-병렬 회로의 설명을 읽는다,
  • 기판의 윗면으로 지나가야 하는 연결선의 최소 개수를 계산한다,
  • 그 값을 출력한다.

입력

입력에는 하나의 직렬-병렬 회로에 대한 설명이 재귀적인 형태로 주어진다.

  • S n (단, 2n100002 \le n \le 10000) 형태의 줄은 이 회로가 nn개의 더 작은 회로를 직렬로 연결한 것임을 뜻하며, 그 회로들의 설명이 다음 줄들에 이어서 주어진다;
  • R n (단, 2n100002 \le n \le 10000) 형태의 줄은 이 회로가 (두 개의 분기 소자를 통해) nn개의 더 작은 회로를 병렬로 연결한 것임을 뜻하며, 그 회로들의 설명이 다음 줄들에 이어서 주어진다;
  • 오직 X 한 글자만 있는 줄은 하나의 소자로 이루어진 회로를 나타낸다.

설명에 등장하는 X의 총 개수는 10710^7을 넘지 않으며, 설명의 중첩 깊이는 500500을 넘지 않는다.

출력

기판의 윗면으로 지나가야 하는 연결선의 최소 개수를 나타내는 정수 하나를 출력한다.