Eu estava assistindo o campeonato mundial de sinuca e isso me fez pensar ..
Pontuação de sinuca
No jogo de sinuca, existem certas regras que você deve aderir também:
- Quando houver bolas vermelhas na mesa, durante o seu turno, você deve primeiro colocar uma bola vermelha
- Depois de envasar cada bola vermelha, você deve colocar uma bola colorida (não vermelha) (a bola colorida em vaso é substituída na mesa)
- Depois que todas as bolas vermelhas estiverem levantadas (existem 15), você pode primeiro escolher uma bola colorida e depois começar com a bola com a menor pontuação e seguir até a bola com a maior pontuação (elas não são substituídas)
- Não envasar em nenhum momento termina o seu turno.
- Pontos por bola
- Bola vermelha: 1 ponto
- Bola amarela: 2 pontos
- Bola verde: 3 pontos
- Bola marrom: 4 pontos
- Bola azul: 5 pontos
- Bola rosa: 6 pontos
- Bola preta: 7 pontos
A questão
Você começa com uma mesa com todas as bolas ainda - 15 vermelhas e uma de cada uma das outras bolas coloridas - e recebe a pontuação de um jogador na sinuca após o primeiro turno. Ponto?
A entrada será uma pontuação que vai de 1 a 147. Você pode escolher se é um número inteiro ou uma sequência. A saída deve ser as diferentes combinações de número de vezes que você colocou cada bola.
Casos de teste:
Input: 4
Output:
1r 1g
2r 1y
Input: 25
Output:
4r 3b
5r 2b 1br 1y
5r 2b 2g
...
9r 8y
Regras:
- Você pode escolher se deseja exibir as possibilidades divididas por uma nova linha ou um separador de algum tipo (/ ,; | \ ou até outros que estão faltando)
Isso é codegolf, então o código mais curto vence.
"5r 3b 2g"
pode ser que a saída seja [5,0,2,0,3,0,0]
(contanto que isso seja consistente)?
b
para marrom e bl
azul; então bk
para preto? Poderíamos usar n
, e
e k
(últimos letras) para estes três? Que tal dleruna
identificar todas as oito cores (terceira letra de cada)?