(Spero che sia ancora il Ringraziamento per te)
Hai un tacchino per la cena del Ringraziamento ma non sai come distribuirlo uniformemente. Il problema è che alcune persone mangiano più di altre, quindi è necessario trovare una soluzione
Ingresso
Ci saranno due ingressi. Il primo sarà un'arte ascii di varie persone.
o
o \|/
\|/ |
| |
/ \ / \
specifiche ascii-art
Ogni persona occupa una larghezza di 3 colonne. Ogni persona è separata da una singola colonna di spazi. Il massimo di ogni persona è un o. Al di sotto di o, offset di 1e -1in x, sono \e /, rispettivamente. Dalla oseconda all'ultima riga nell'input sono |, la quantità di questi per persona è la loro "altezza". Gli unici dati che dovrai estrarre da ogni persona sono la loro "altezza".
Ci sarà sempre almeno una persona. Ogni persona ha sempre almeno 2 altezze. L'altezza massima che il programma deve gestire è almeno un'altezza di 64.
Se desideri che l'ingresso riempito di spazi formi un rettangolo, specifica questo nella tua risposta.
Il secondo input è il tacchino. Il tacchino non è in realtà un tacchino, più delle NxMdimensioni di un tacchino. Se il secondo input è 3x2, allora il tacchino ha dimensioni di 3 * 2, con un'area totale di 6.
Produzione
L'output può essere un elenco o l'alternativa più vicina alla tua lingua (ad es. Array). È inoltre possibile generare una stringa, con i valori separati da spazi.
I valori per ogni persona dovrebbero essere emessi nell'ordine in cui sono stati inseriti.
Sfida
Il tuo obiettivo è quello di dividere l'area del tacchino tra le persone.
Uno scenario di esempio:
Supponiamo che siano due persone, rispettivamente con altezze di 3e 6. Se c'è un tacchino di 5x3. L'area totale del tacchino che dovrà essere distribuita è 15.
Ora come lo distribuiresti a tutti? Ecco come:
the_persons_height
TurkeyForAPerson = -------------------- * turkey_area
sum_of_all_heights
Ciò significa che per la prima persona con un'altezza di 3, otterranno la 3/9*15Turchia, o 5, la seconda persona con un'altezza di 6avranno 6/9*15o la 10Turchia.
Produzione
L'output deve essere costituito esclusivamente da cifre e ., a meno che tu non scelga di scegliere il bonus. In tal caso, può consistere solo di cifre, spazi ( ) e una barra ( /).
Esempio completo
Ingresso:
6x5
o
|
o \|/
\|/ |
| |
| |
/ \ / \
Produzione:
11.25 18.75
bonus
-20% di bonus: ottieni una frazione (deve essere semplificata), non importa se si tratta di una frazione mista o impropria.
punteggio
Questo è code-golf quindi vince il codice più breve in byte!
