À l'aide d'un langage de programmation, écrivez 5 programmes sur une seule ligne, chacun produisant une ligne différente du premier couplet de la chanson de 1972 de Harry Nilsson " Coconut " lorsqu'elle est exécutée individuellement:
Frère a acheté une noix de coco, il l'a acheté pour un sou
Sa sœur avait un autre, elle a payé pour une chaux
Elle a mis la chaux dans la noix de coco, elle les a bu à la fois en
elle mis la chaux dans la noix de coco, elle les a bu à la fois en
elle mettre le citron vert dans la noix de coco, elle les a bu tous les deux
Les 3 dernières lignes ont les mêmes paroles, donc vos 3 derniers programmes pourraient l'être aussi.
Il existe 5 façons factorielles ou 120 façons dont ces 5 programmes à ligne unique peuvent être organisés un par ligne dans un seul programme à 5 lignes. Vous devez optimiser vos programmes sur une seule ligne de telle sorte que pour autant de ces 120 combinaisons que possible, le programme sur 5 lignes affiche l' intégralité du verset dans son ordre , exactement comme il apparaît ci-dessus.
Exemple
La réponse la plus simple aurait 5 instructions d'impression sur une seule ligne, les 3 dernières identiques:
print('Brother bought a coconut, he bought it for a dime')
print('His sister had another one, she paid it for a lime')
print('She put the lime in the coconut, she drank them both up')
print('She put the lime in the coconut, she drank them both up')
print('She put the lime in the coconut, she drank them both up')
La sortie vers les programmes à 5 lignes sera le verset dans son ordre correct tant que les deux premiers doublons seront à leur place. Seuls 6 des 120 arrangements possibles y parviennent.
Notation
La soumission avec le plus de cas de travail parmi les 120 gagne. Le bris d'égalité va à l'ensemble des programmes avec le nombre d'octets cumulé le plus bas (les nouvelles lignes ne sont pas comptées). L'exemple a 309 octets.
Détails
Vos programmes peuvent ne pas lire leur propre code source. Ils ne doivent pas non plus lire d'autres fichiers externes ou nécessiter une connexion réseau.
Sortie vers sortie standard ou alternative la plus proche. Vous pouvez également exporter vers un fichier avec le nom de votre choix.
Les "programmes sur une seule ligne" sont des chaînes qui contiennent tous les caractères sauf les terminateurs de ligne (vous aurez probablement juste à vous soucier des sauts de ligne).
Lorsque vous composez les lignes simples dans les 5 lignes, vous devez ajouter exactement 4 nouvelles lignes, une entre chaque paire adjacente de lignes simples. Vous pouvez éventuellement ajouter une nouvelle ligne de fin.
main
méthode? Alors, qui doit être exécuté lors de l'exécution du programme?
main
.