Introduzione:
(Fonte: Wikipedia )
Quando guardiamo un arcobaleno avrà sempre i colori dall'alto verso il basso:
rosso; arancia; giallo; verde; blu; indaco; viola
Se guardiamo questi singoli anelli, l'anello rosso è ovviamente più grande dell'anello viola.
Inoltre, è anche possibile avere due o anche tre arcobaleno contemporaneamente.
Tutto questo sopra combinato verrà utilizzato in questa sfida:
Sfida:
Dato un elenco di numeri interi di dimensione esattamente 7, in cui ciascun valore indica le particelle di colore disponibili per formare gli arcobaleni (dove l'indice più grande indica il rosso e l'indice più piccolo indica il viola), genera la quantità di arcobaleni che possono essere formati.
Un singolo arcobaleno intero deve avere almeno 3x viola, 4x indaco, 5x blu, 6x verde, 7x giallo, 8x arancio, 9x rosso. Un secondo arcobaleno sopra di esso sarà persino più grande dell'anello rosso del primo arcobaleno (compreso uno spazio tra loro), quindi avrà bisogno di almeno 11x viola, 12x indaco, 13x blu, 14x verde, 15x giallo, 16x arancione , 17x rosso oltre a quello utilizzato dal primo arcobaleno. Il terzo arcobaleno inizierà nuovamente con il viola 19x.
Esempio:
Elenco di input: [15,20,18,33,24,29,41]
output:2
Perché? Abbiamo 15x viola e abbiamo bisogno di almeno 3 + 11 = 14 per due arcobaleni. Abbiamo 20 indaco e abbiamo bisogno di almeno 4 + 12 = 16 per due arcobaleni. Ecc. Abbiamo abbastanza colori per due arcobaleni, ma non abbastanza per formare tre arcobaleni, quindi l'output è 2.
Regole della sfida:
- I numeri interi nell'array di input sono garantiti come non negativi (
>= 0). - L'elenco di input è garantito per essere esattamente della dimensione 7.
- Quando non è possibile formare arcobaleni, produciamo
0. - Il formato di input e output è flessibile. Può essere un elenco o un array di numeri interi di decimali, può essere preso da STDIN. L'output può essere un ritorno da una funzione in qualsiasi tipo di output ragionevole o stampato direttamente su STDOUT.
Quantità minima di colori richiesta per la nquantità di arcobaleni:
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...
Regole generali:
- Questo è code-golf , quindi vince la risposta più breve in byte.
Non lasciare che le lingue di code-golf ti scoraggino dal pubblicare risposte con lingue non codegolfing. Prova a trovare una risposta il più breve possibile per "qualsiasi" linguaggio di programmazione. - Per la tua risposta valgono regole standard , quindi puoi usare STDIN / STDOUT, funzioni / metodo con i parametri corretti e tipo di ritorno, programmi completi. La tua chiamata.
- Le scappatoie predefinite sono vietate.
- Se possibile, aggiungi un link con un test per il tuo codice.
- Inoltre, si consiglia vivamente di aggiungere una spiegazione per la risposta.
Casi test:
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,0caso limite però :( (non si adatta alla logica a 1 gap)