Вам дали мішок Skittles. Всім відомо, що для того, щоб найбільше цінувати різні аромати, потрібно обертатися між ароматами.
Основи:
- За один раз можна з'їсти 1 кеглі
- Порядок того, що ви їсте свої кеглі, повинен бути періодичним.
- Кожен період не може містити певний аромат більше одного разу.
- У вашій сумці є тільки стільки кеглі. Ви не можете їсти більше певного аромату кеглі, ніж з'являється у вашій сумці.
- Ви хочете з'їсти якомога більше кегліків (це не завжди можливо)
Приклади:
Скажімо, ви починаєте з 3 червоних, 2 синіх та 3 зелених кеглі:
R B G R B G R G Invalid: The last R must be followed by a B, not a G
R B G R B G R Valid, but sub-optimal
R R R Valid, but sub-optimal
R G B R G B R G Valid and optimal
G R B G R B G R Also valid and optimal (there are multiple good solutions)
Введення-виведення
- Вам передається не порожній список натуральних чисел для кількості кольорів. (Наведений вище приклад
[3,2,3]). - Вам потрібно повернути список, що містить дійсне та оптимальне замовлення.
- Замість використання кольорів ви будете використовувати показники зі списку введення. (Останній приклад буде результатом
[2,0,1,2,0,1,2,0]). - Ваш вихід може бути 0-індексованим або 1-індексованим. Мої приклади будуть 0-індексованими
Випробування
1 0
4 0 0 0 0
4 1 0 0 0 0
3 1 0 1 0 or 0 0 0
5 2 2 0 1 2 0 1 2 0
2 3 5 2 1 0 2 1 0 2 1 or 1 2 0 1 2 0 1 2
2 4 5 2 1 2 1 2 1 2 1 2
3 4 5 2 1 0 2 1 0 2 1 0 2 1 or 1 2 0 1 2 0 1 2 0 1 2
1 1 1 1 1 6 5 0 1 2 3 4 5 (lots of other solutions)
1 1 1 1 1 8 5 5 5 5 5 5 5 5
2 4 6 8 3 2 1 3 2 1 3 2 1 3 2 1 3 2
Це код-гольф , тому зробіть свої рішення якомога коротшими на улюбленій мові!