Я спостерігав за чемпіонатом світу з снукеру, і це мене здивувало ..
Снукер
У грі в снукер є певні правила, яких ви також повинні дотримуватися:
- Коли на столі є червоні кульки, під час своєї черги ви повинні спочатку подати червоний кульку
- Після заповнення кожної червоної кульки, ви повинні розлити кольорову (не червону) кулю (кольорову кульку з горщиком замінити на стіл)
- Після того, як всі червоні кулі вгору (їх 15), ви можете спершу вибрати кольорову кулю, а потім починаєте з найнижчого бального м’яча і працюєте до найвищого бального бала (вони не замінюються)
- Якщо в будь-якій точці горщик не закінчується ваша черга.
- Бали за бал
- Червона куля: 1 бал
- Жовтий куля: 2 бали
- Зелений куля: 3 бали
- Коричневий куля: 4 бали
- Синій куля: 5 балів
- Рожевий куля: 6 балів
- Чорна куля: 7 балів
Питання
Ви починаєте з таблиці з усіма кульками, які все ще знаходяться на ній - 15 червоних та одна з кожної з інших кольорових кульок - і отримуєте рахунок гравця в снукері після їх першого повороту, якими способами вони могли це досягти оцінка?
Введенням буде оцінка від 1 до 147. Ви можете вибрати, чи це ціле число чи рядок. Вихідні дані повинні бути різними комбінаціями, скільки разів ви наклали кожен куля.
Тестові приклади:
Input: 4
Output:
1r 1g
2r 1y
Input: 25
Output:
4r 3b
5r 2b 1br 1y
5r 2b 2g
...
9r 8y
Правила:
- Ви можете вибрати, чи виводити можливості, розділений на новий рядок або роздільник якоїсь форми (/,; | | або навіть інших, яких мені не вистачає)
Це codegolf, тому найкоротший код виграє.
"5r 3b 2g"може бути виведена як [5,0,2,0,3,0,0](доки це відповідає)?
bдля коричневого і blдля синього; так bkдля чорного? Чи можемо ми використовувати n, eі k(останні букви) для цих трьох? Як щодо того, dlerunaщоб визначити всі вісім кольорів (3-я літера кожного)?