ACM 마을의 볼링은 핀을 3개만 사용한다. 이 볼링 경기의 점수를 계산하는 프로그램을 작성하자.
한 경기는 10개의 프레임으로 이루어지고, 경기 점수는 각 프레임 점수의 합이다. 마지막(10번째)을 제외한 각 프레임에서는 최대 2번 투구할 수 있다. 다만 첫 투구로 핀 3개를 모두 쓰러뜨리면(스트라이크) 그 프레임은 1번만 투구한다.
10번째 프레임이 미스이면 그 프레임은 2번만 투구한다. 하지만 10번째 프레임이 스트라이크나 스페어이면 보너스 투구를 포함하여 총 3번 투구한다.
프레임 점수 규칙은 다음과 같다.
스페어와 스트라이크는 각각 다음 1번, 다음 2번 투구 결과가 필요하므로, 10번째 프레임이 스트라이크나 스페어일 때 최대 3번까지 투구하는 것이다.
예를 들어 한 경기에서 18번 투구하여 쓰러뜨린 핀 수가 차례로 1, 2, 1, 0, 3, 1, 1, 3, 3, 2, 1, 1, 2, 2, 1, 3, 1, 1 이라면 프레임은 1,2 / 1,0 / 3 / 1,1 / 3 / 3 / 2,1 / 1,2 / 2,1 / 3,1,1 로 나뉘고, 각 프레임 점수는 4 / 1 / 5 / 2 / 8 / 6 / 4 / 5 / 6 / 5 가 되어 이 경기의 점수는 46점이다.
작성할 프로그램은 한 경기에서 각 투구로 쓰러뜨린 핀 수를 읽어 그 경기의 점수를 계산한다.
주의할 점은 입력이 잘못된 경우가 있다는 것이다. 예를 들어 어떤 경기가 2, 2로 시작하면 오류다. 첫 투구에서 핀 3개 중 2개만 쓰러뜨렸으므로 남은 핀은 1개뿐인데, 두 번째 투구에서 2개를 쓰러뜨리는 것은 불가능하기 때문이다. 이처럼 그 순간 서 있는 핀보다 많은 핀을 쓰러뜨리는 입력은 오류로 처리한다. 이 규칙은 10번째 프레임의 보너스 투구에도 똑같이 적용된다(보너스 투구로 핀을 모두 쓰러뜨리면 핀은 다시 세워진다).
프로그램은 표준 입력에서 데이터를 읽는다. 입력은 T개의 테스트 케이스로 이루어지며 0<T<100이다. 첫 줄에 T가 주어진다.
각 테스트 케이스는 두 줄로 구성된다. 첫 줄에는 둘째 줄에 나올 정수의 개수 k가 주어지며 11≤k≤21이다. 둘째 줄에는 각 투구로 쓰러뜨린 핀 수가 k개 주어지며, 각 값은 0 이상 3 이하의 정수다.
각 테스트 케이스마다 볼링 점수를 한 줄에 하나씩 출력한다. 따라서 출력되는 줄 수는 정확히 T이다. 어떤 테스트 케이스의 입력이 규칙에 맞지 않으면 그 줄에는 error를 출력한다.