Вступ:
(Джерело: Вікіпедія )
Коли ми дивимось на веселку, у неї завжди будуть кольори зверху вниз:
Червоний; помаранчевий; жовтий; зелений; синій; індиго; фіолетовий
Якщо ми подивимось на ці окремі кільця, червоне кільце, звичайно, більше, ніж кільце фіолетового.
Крім того, також можна одночасно мати дві або навіть три веселки.
Все це вище у поєднанні буде використано в цьому виклику:
Виклик:
Давши список цілих чисел точно розміром 7, де кожне значення вказує на кольорові частинки, доступні для формування веселок (де найбільший індекс вказує на червоний, а найменший показник - на фіолетовий), виведіть кількість веселок, які можна сформувати.
На одній цілій цілі-веселці повинно бути не менше 3-красного фіолетового, 4х-індиго, 5-красного синього, 6x зеленого, 7x жовтого, 8-красного помаранчевого, 9-красного. Друга веселка зверху буде ще більшою, ніж червоне кільце першої веселки (включаючи один проміжок між ними), тож їй знадобиться принаймні 11x фіолетовий, 12x індиго, 13x синій, 14x зелений, 15x жовтий, 16x помаранчевий , 17x червоний на додаток до того, що використовує перша веселка. Третя веселка знову розпочнеться в 19x фіолетову.
Приклад:
Список вводу: [15,20,18,33,24,29,41]
Вихід:2
Чому? У нас фіалка 15-кратна, і нам потрібно щонайменше 3 + 11 = 14 для двох веселок. У нас 20 індиго, і нам потрібно щонайменше 4 + 12 = 16 для двох веселок. І т. Д. У нас є достатньо кольорів для двох веселок, але недостатньо для формування трьох веселок, тому результат є 2
.
Правила виклику:
- Цілі числа у вхідному масиві гарантуються як негативні (
>= 0
). - Гарантовано, що список введення буде точно розміром 7.
- Коли не може бути сформовано веселок, ми виводимо
0
. - Формат введення та виведення є гнучким. Може бути список або масив цілих чисел десяткових знаків, можна взяти з STDIN. Вихід може бути поверненням функції в будь-якому розумному типі виводу або надрукований безпосередньо в STDOUT.
Мінімальна кількість кольорів, необхідна для n
кількості веселок:
Amount of Rainbows Minimum amount per color
0 [0,0,0,0,0,0,0]
1 [3,4,5,6,7,8,9]
2 [14,16,18,20,22,24,26]
3 [33,36,39,42,45,48,51]
4 [60,64,68,72,76,80,84]
5 [95,100,105,110,115,120,125]
etc...
Загальні правила:
- Це код-гольф , тому найкоротша відповідь у байтах виграє.
Не дозволяйте мовам з кодовим гольфом відштовхувати вас від публікації відповідей з мов, що не кодують гольф. Спробуйте придумати якомога коротшу відповідь на "будь-яку" мову програмування. - Стандартні правила застосовуються до вашої відповіді, тому вам дозволяється використовувати STDIN / STDOUT, функції / метод із відповідними параметрами та повним програмами типу return. Твій дзвінок.
- Лазівки за замовчуванням заборонені.
- Якщо можливо, додайте посилання з тестом для вашого коду.
- Також настійно рекомендується додавати пояснення до своєї відповіді.
Тестові приклади:
Input: [15,20,18,33,24,29,41]
Output: 2
Input: [3,4,5,6,7,8,9]
Output: 1
Input: [9,8,7,6,5,4,3]
Output: 0
Input: [100,100,100,100,100,100,100]
Output: 4
Input: [53,58,90,42,111,57,66]
Output: 3
Input: [0,0,0,0,0,0,0]
Output: 0
Input: [95,100,105,110,115,120,125]
Output: 5
Input: [39525,41278,39333,44444,39502,39599,39699]
Output: 98
0,0,0,0,0,0,0
Край випадок , хоча :( (це не в'яжеться з логікою 1-розриву)