eolymp
bolt
Try our new interface for solving problems
Məsələlər

Боулинг

Боулинг

Zaman məhdudiyyəti 1 saniyə
Yaddaşı istafadə məhdudiyyəti 64 MiB

Известно, что программистам нравится боулинг. Боулинг – это соревновательный вид спорта, в котором игрок ("боулер") катит шар по деревянной или синтетической дорожке с целью заработать очки, сбивая как можно большее количество кеглей.

Подсчет очков является одним из этапов игры, и для новичка кажется слишком запутанным процессом. К счастью, это не так сложно как кажется.

Поскольку большинство боулинг центров оснащены компьютером для ведения счета, то обычно Вам не приходится заниматься подсчетом очков. Но если однажды такой компьютер сломается или Вам придется исправить ошибку, понимание правил подсчета очков становится достаточно важным.

Сложность подсчета возникает, когда имеет место страйк или дополнительный бросок, так как в этих случаях табло не обновляется сразу.

Игра состоит из 10 раундов, в начале каждого из которых Вам предлагается сбить полный набор из 10 кеглей. В каждом раунде Вам дается два броска, за которые необходимо сбить как можно большее количество кеглей.

Если первым броском Вы сбиваете все кегли, то такая ситуация в игре называется страйк. Счет не изменяется сразу, так как в этом случае значения двух следующих бросков будут добавлены к результату страйка в качестве бонуса. Например, если в первом раунде имеет место страйк, а во втором раунде Вы получили соответственно 7 и 1 очко, то за первый раунд Вам начислится 18 (10+7+1) очков, и 8 за второй раунд, то есть Вы получите 26 очков за два раунда.

Если первым броском сбита некоторая часть кеглей, а вся оставшаяся часть сбита вторым броском, такая ситуация называется спэа. Счет сразу не обновляется, так как в этом случае значение следующего броска прибавляется в качестве бонуса. Если имеет место спэа в первом раунде, например 6 и 4, а во втором раунде 8 и 1, то за первый раунд Вы получите 18 (6+4+8), и 9 за второй, то есть 27 в сумме за два раунда.

В последнем раунде подсчет очков немного отличается. В случае страйка или спэа Вы имеете дополнительные броски, которые приносят бонусные очки. Если первым броском имеет место страйк, то у Вас есть возможность выбить страйк в последующих двух бросках, таким образом совершив в сумме три броска за раунд. Если имеет место страйк во всех трех последних бросках, вы получаете за последний раунд 30 (10+10+10) очков. Если в последнем раунде имеет место спэа, то Вы получаете в качестве бонуса еще один бросок. То есть спэа 9 и 1 с последующим страйком принесет Вам 20 (9+1+10) очков.

Необходимо написать программу подсчета очков по информации о количестве сбитых кеглей при каждом броске.

Giriş verilənləri

Первая строка содержит количество тестов t <= 1000. Каждая из следующих t строк описывает один тест. Каждый тест состоит из нескольких целых чисел 0 <= a <= 10 – количества кеглей, сбитых при каждом броске. Каждый тест описывает полную игру для одного игрока. Все входные игры корректны.

Çıxış verilənləri

Для каждого теста в отдельной строке вывести количество очков, которое может набрать игрок.

Nümunə

Giriş verilənləri #1
3
10 10 10 10 10 10 10 10 10 10 10 10
3 5 1 5 7 1 10 1 6 10 6 2 1 2 0 5 8 1
9 1 5 0 3 0 8 1 6 4 7 2 7 1 6 3 10 4 4
Çıxış verilənləri #1
300
89
101