(J'espère que c'est toujours Thanksgiving pour vous)
Vous avez obtenu une dinde pour votre dîner d'action de grâces mais vous ne savez pas comment la distribuer uniformément. Le problème est que certaines personnes mangent plus que d'autres, vous devez donc trouver une solution
Contribution
Il y aura deux entrées. Le premier sera un art ascii de diverses personnes.
o
o \|/
\|/ |
| |
/ \ / \
Spécifications ascii-art
Chaque personne occupe une largeur de 3 colonnes. Chaque personne est séparée par une seule colonne d'espaces. Le sommet de chaque personne est un o. Ci - dessous la o, compensée par 1et -1dans le x, sont \et /, respectivement. De l' oavant-dernière à la dernière ligne de l'entrée |, le montant de ces derniers par personne est leur "taille". Les seules données que vous devrez extraire de chaque personne sont leur "taille".
Il y aura toujours au moins une personne. Chaque personne a toujours au moins 2 hauteurs. La hauteur maximale que votre programme doit gérer est d'au moins 64.
Si vous souhaitez que l'entrée remplie d'espaces forme un rectangle, veuillez le préciser dans votre réponse.
La deuxième entrée est la dinde. La dinde n'est pas vraiment une dinde, plus des NxMdimensions d'une dinde. Si la deuxième entrée est 3x2, alors la dinde a des dimensions de 3 * 2, avec une superficie totale de 6.
Production
La sortie peut être une liste ou l'alternative la plus proche de votre langue (par exemple Array). Vous pouvez également produire une chaîne, avec les valeurs séparées par des espaces.
Les valeurs pour chaque personne doivent être sorties dans l'ordre dans lequel elles ont été entrées.
Défi
Votre objectif est de diviser la zone de la dinde entre les gens.
Un exemple de scénario:
Supposons qu'ils soient deux personnes, avec des hauteurs de 3et 6, respectivement. S'il y a une dinde de 5x3. La superficie totale de la dinde qui devra être distribuée est de 15.
Maintenant, comment le répartiriez-vous entre tous? Voici comment:
the_persons_height
TurkeyForAPerson = -------------------- * turkey_area
sum_of_all_heights
Cela signifie que pour la première personne avec une hauteur de 3, ils obtiendront de la 3/9*15dinde, ou 5, la deuxième personne avec une hauteur de 6ils obtiendront 6/9*15ou de la 10dinde.
Production
La sortie doit uniquement être composée de chiffres et ., à moins que vous ne choisissiez de choisir le bonus. Dans ce cas, il ne peut être composé que de chiffres, d'espaces ( ) et d'une barre oblique ( /).
Exemple complet
Contribution:
6x5
o
|
o \|/
\|/ |
| |
| |
/ \ / \
Production:
11.25 18.75
Bonus
-20% Bonus: Vous sortez une fraction (doit être simplifiée), peu importe si c'est une fraction mixte ou incorrecte.
Notation
C'est le code-golf donc le code le plus court en octets gagne!
