SP6477 BOWLING1 - Bowling

题目描述

众所周知,程序员们非常喜欢打保龄球。这是一项竞技运动,玩家(“球手”)将保龄球在木质或合成材料的球道上滚动,目标是尽可能多地击倒球瓶以获得高分。 对初学者来说,保龄球的计分系统可能让人摸不着头脑。但其实只要理解了,其实并不复杂。 许多保龄球中心配有计分电脑,你通常不需要亲自计算分数。这让一些常打球的人变得依赖,可能在需要手动更正错误时无法正确计分(是的,电脑偶尔也会出错)。所以,掌握计分规则依然是有益的。 计分中最令人困惑的是全中(Strike)和补中(Spare)后的得分计算,因为分数不会在击中时立即更新。 一局比赛包含十轮,每轮开始时都有十个球瓶可供击打。每轮你有两次机会投球,以击倒尽量多的球瓶。 若第一次投球便击倒所有球瓶,则称为全中。全中的得分不会立刻显示,因为你还会加上接下来两次投球的分数作为奖励。例如,在第一轮全中,而第二轮分别得7分和1分,那么第一轮的得分是18(10+7+1),第二轮得分是8,这样两轮总计26分。 如果第一球没有击倒所有球瓶,但在第二球将余下的球瓶全击倒,称为补中。补中的得分也会延迟,因为还会加上下一次投球的分数作为奖励。例如,第一轮补中得6加4分,第二轮分别得8分和1分,则第一轮得分是18(6+4+8),第二轮得分是9,两轮总计27分。 对于最后一轮,规则略有不同。如果这一轮全中或补中,可获得最多三次投球机会。若第一投全中,则还可以在接下来的两次投球中继续全中,总计三次投球机会。如果最后三次投球全中得30(10+10+10),该轮得分就是30。若补中则获得一次额外投球机会。例如,补中后得9加1,再接着全中,则得分为20(9+1+10)。 请编写一个程序,根据每次投球后击倒的球瓶数,计算球员在一局中的总得分。

输入格式

第一行输入一个整数 $t \leq 1000$,表示测试用例数。接下来的每行描述一个测试用例。每个用例由若干个整数 $0 \leq a \leq 10$ 组成,表示每次投球后击倒的球瓶数。每个用例对应一名球员的一整局比赛。输入中的比赛数据保证正确。

输出格式

对于每个测试用例,输出该玩家在这一局中的总得分,单独占一行。 **本翻译由 AI 自动生成**