볼링 점수 계산

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

문제

볼링 한 게임의 최종 점수를 구한다. 한 게임은 10프레임으로 이루어지고, 10번째 프레임의 규칙만 앞의 아홉 프레임과 조금 다르다.

1번부터 9번 프레임까지는 각각 투구를 한 번 또는 두 번 한다. 프레임을 시작할 때 핀 10개가 세워진다. 첫 투구로 핀 10개를 모두 쓰러뜨리면 스트라이크이고 그 프레임은 거기서 끝난다. 그렇지 않으면 남은 핀을 향해 두 번째 투구를 한다. 두 번째 투구로 남은 핀을 모두 쓰러뜨리면 스페어, 그러지 못하면 오픈 프레임이다.

오픈 프레임의 점수는 그 프레임에서 쓰러뜨린 핀 수의 합이다. 스페어의 점수는 10점에 바로 다음 투구 한 번에서 쓰러뜨린 핀 수를 더한 값이다. 스트라이크의 점수는 10점에 바로 다음 투구 두 번에서 쓰러뜨린 핀 수를 더한 값이다. 다음 투구가 또 스트라이크이면 그 두 투구는 두 프레임에 걸친다.

10번째 프레임은 투구를 두 번 또는 세 번 한다. 진행은 다음과 같다.

  • 핀 10개가 세워진다.
  • 첫 투구로 10개를 모두 쓰러뜨리면 스트라이크이고, 핀 10개가 다시 세워진다.
    • 두 번째 투구로도 10개를 모두 쓰러뜨리면 스트라이크를 하나 더 얻고, 핀 10개가 마지막으로 다시 세워진다.
      • 세 번째 투구로도 10개를 모두 쓰러뜨리면 스트라이크를 하나 더 얻는다. (1)
      • 10개보다 적게 쓰러뜨리면 쓰러뜨린 핀 수만큼 얻는다. (2)
    • 두 번째 투구로 10개보다 적게 쓰러뜨리면 그만큼 얻고, 남은 핀이 그대로 세워져 있다.
      • 세 번째 투구로 남은 핀을 모두 쓰러뜨리면 스페어다. (3)
      • 그보다 적게 쓰러뜨리면 쓰러뜨린 핀 수만큼 얻는다. (4)
  • 첫 투구로 10개보다 적게 쓰러뜨리면 남은 핀이 그대로 세워져 있다.
    • 두 번째 투구로 남은 핀을 모두 쓰러뜨리면 스페어이고, 핀 10개가 다시 세워진다.
      • 세 번째 투구로 10개를 모두 쓰러뜨리면 스트라이크다. (5)
      • 10개보다 적게 쓰러뜨리면 쓰러뜨린 핀 수만큼 얻는다. (6)
    • 두 번째 투구로 남은 핀을 다 쓰러뜨리지 못하면 두 투구에서 쓰러뜨린 핀 수만큼 얻는다. (7)

10번째 프레임의 점수는 그 프레임의 모든 투구에서 쓰러뜨린 핀 수의 합이고, 보너스는 붙지 않는다.

표기는 이렇게 한다. 스트라이크는 X, 스페어는 첫 투구에서 쓰러뜨린 핀 수 뒤에 /, 오픈 프레임은 두 투구에서 쓰러뜨린 핀 수 두 개로 적는다. 10번째 프레임은 위 번호에 맞춰 (1) X X X, (2) X X a, (3) X a /, (4) X a b, (5) a / X, (6) a / b, (7) a b 중 하나로 적는다. 여기서 a와 b는 숫자다.

입력

첫 줄에 게임 수가 주어진다. 다음 각 줄에 게임 하나의 표기가 공백으로 구분되어 주어진다.

프레임 경계는 따로 표시되지 않는다. 각 프레임이 투구를 한 번 했는지, 두 번 했는지, 세 번 했는지는 표기를 보고 직접 판단해야 한다. 입력에 주어지는 표기는 모두 규칙에 맞는 올바른 표기다.

출력

각 게임의 총점을 입력에 주어진 순서대로 한 줄에 하나씩 출력한다.

힌트

8 1 X X 3 / 4 5 1 / X X 3 / 4 / 8 게임은 다음과 같이 진행된다.

프레임표기점수누계
18 18 + 1 = 99
2X10 + 10 + 3 = 2332
3X10 + 3 + 7 = 2052
43 /10 + 4 = 1466
54 54 + 5 = 975
61 /10 + 10 = 2095
7X10 + 10 + 3 = 23118
8X10 + 3 + 7 = 20138
93 /10 + 4 = 14152
104 / 84 + 6 + 8 = 18170