Submeter | Todas submissőes | Melhores | Voltar |
BOLICH09 - Boliche |
O boliche é um esporte que surgiu, nas suas formas mais primitivas, no antigo Egito. Em 1895, o Congresso Americano de Boliche padronizou as regras do boliche de dez pinos, que eventualmente tornou-se a forma mais popular de boliche no mundo todo: um arranjo de dez pinos é montado no final de uma pista, e o jogador deve tentar derrubar os pinos lançando uma bola a partir da extremidade oposta da pista.
Uma partida de boliche é composta de dez rodadas. Em cada rodada, o jogador pode fazer até duas tentativas de derrubar os pinos (os pinos não são repostos entre uma tentativa e outra). Assim, por exemplo, se um jogador derruba três pinos na sua primeira bola e cinco pinos na sua segunda bola, ele deve fazer a anota¸cão ‘35’ no seu placar. Se ele não derrubar nenhum pino na primeira bola mas derrubar oito pinos na sua segunda bola, ele anota ‘-8’ no seu placar.
Normalmente, a pontuação de uma rodada é simplesmente o total de pinos derrubados: por exemplo, ambas as rodadas acima valem oito pontos. No entanto, caso o jogador derrube todos os dez pinos em uma rodada, ele ganha pontos de bônus, dependendo de quantas bolas ele usou naquela rodada.
Caso o jogador derrube todos os dez pinos usando as duas bolas da rodada (por exemplo, derrubando três pinos na primeira bola e os outros sete na segunda bola), ele fez um spare. Neste caso, o segundo número é substituído por uma barra no placar (ou seja, anota-se ‘3/’ e não ‘37’), e a pontua¸cão da rodada é 10 (o total de pinos derrubados) mais o número de pinos derrubados na próxima bola (a pontuação de bônus). Se na próxima rodada o jogador derrubar 6 pinos com sua primeira bola, a pontua¸cão total da primeira rodada será 16 (além disso, os 6 pinos são contados na segunda rodada também).
Caso o jogador derrube todos os dez pinos usando a primeira bola da rodada, ele fez um strike. A anotação no placar é simplesmente um ‘X’, e a pontuação da rodada vale 10 mais o total de pinos derrubados nas próximas duas bolas. Note que um strike só pode ser feito usando a primeira bola da rodada, e neste caso a segunda bola da rodada não é jogada. Se, por exemplo, um jogador marcar um strike na primeira e na segunda rodadas e derrubar 4 pinos na primeira bola da terceira rodada, a pontuação da primeira rodada será 10 + 10 + 4 = 24.
Se o jogador marcar um spare ou strike na décima rodada, o jogador deve jogar uma ou duas bolas extras, respectivamente. Estas bolas não fazem parte da décima rodada, e servem apenas para determinar o bônus do spare ou do strike correspondente.
Por exemplo, se um jogador marca um strike na décima rodada, derruba três pinos na primeira bola extra e derruba os sete pinos restantes na segunda bola extra, a décima rodada pontua 10 + 3 + 7 = 20 pontos, e é anotada no placar como ‘X3/’ (as bolas extras são anotadas junto à décima rodada). Se o jogador derrubar 2 pinos na primeira bola da décima rodada, marcar um spare na segunda bola e um strike na bola extra, sua pontua¸cão é 10 + 10 = 20 pontos, e a anotação no placar é ‘2/X’.
Finalmente, se um jogador marcar um strike na décima rodada e na primeira bola extra, e derrubar nove pinos na segunda bola extra, ele pontua 10 + 10 + 9 = 29 pontos e anota ‘XX9’ no placar. Note que os pinos só são repostos entre a primeira e a segunda bola extra se o jogador marcar um strike na primeira bola extra.
Calcular a pontuação de um jogo de boliche pode ser muito complicado, especialmente quando vários bônus estão envolvidos.
Tarefa
Escreva um programa que, dado o placar de uma partida de boliche, determina a pontuação do jogador.
Entrada
A entrada contém um unico conjunto de testes, que deve ser lido do dispositivo de entrada padrão(normalmente o teclado).
A primeira e unica linha contém a descrição das dez rodadas de uma partida de boliche, separadas por espaços.
Saída
Seu programa deve imprimir, na saída padrão, uma unica linha contendo um unico número inteiro, indicando a pontuação obtida na partida.
Exemplo
Entrada: X X X X X X X X X XXX Saída: 300
Entrada: 1- 2- 3- 4- 5- 6- 7- 8- 9- X-- Saída: 55
Entrada: -- -- -- -- -- -- -- -- -- -- Saída: 0
Entrada: 1/ 2/ 3/ 4/ 5/ 6/ 7/ 8/ 9/ -/X Saída: 154
Entrada: -/ X X X 72 8/ -9 X 7- XX8 Saída: 176
Adicionado por: | Wanderley Guimarăes |
Data: | 2012-07-15 |
Tempo limite: | 1s |
Tamanho do fonte: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Linguagem permitida: | Todas exceto: ASM64 CLOJURE ERL FSHARP PERL6 PY_NBC SCALA TCL |
Origem: | Seletiva IOI 2009 |