introduction
Ne détestez-vous pas que quelqu'un télécharge un album que vous aimez sur YouTube, mais la description ne contient qu'une liste de pistes ? Comme ça:
1. Everything in Its Right Place - 4:11
2. Kid A - 4:44
3. The National Anthem - 5:50
4. How to Disappear Completely - 5:55
5. Treefingers - 3:42
6. Optimistic - 5:16
7. In Limbo - 3:31
8. Idioteque - 5:09
9. Morning Bell - 4:29
10. Motion Picture Soundtrack - 6:59
Maintenant, vous ne savez pas quand Morning Bell commence, sauf si vous résumez plusieurs fois dans votre tête! Habituellement, une bonne âme viendra et laissera un calendrier pratique dans la section des commentaires (redoutés), qui ressemble à ceci:
(0:00:00) Everything in Its Right Place
(0:04:11) Kid A
(0:08:55) The National Anthem
(0:14:45) How to Disappear Completely
(0:20:40) Treefingers
(0:24:22) Optimistic
(0:29:38) In Limbo
(0:33:09) Idioteque
(0:38:18) Morning Bell
(0:42:47) Motion Picture Soundtrack
spécification
Votre tâche consiste à écrire un programme ou une fonction qui prend une liste de pistes en entrée et un calendrier en sortie.
- Vous pouvez choisir de lire l'entrée de STDIN, ou une chaîne d'arguments, ou une liste d'arguments de lignes. De même, vous pouvez choisir d'imprimer la sortie sur STDOUT, ou renvoyer une chaîne, ou renvoyer une liste de lignes. A défaut, faites tout ce qui a du sens pour votre langue.
Vous pouvez supposer que chaque ligne d'entrée a le format
(\d+)\. [A-Za-z0-9 ]{1,100} - (\d+):(\d\d)
. Pour les personnes avec des regex, cela signifie essentiellement que vous pouvez supposer que chaque ligne est bien formatée (comme ci-dessus) et que les titres des chansons ne sont composés que de caractères et d'espaces alphanumériques ASCII et ne dépassent pas 100 octets.- La longueur d'une piste est toujours au moins
0:01
et pas plus59:59
. - Les numéros de piste augmentent l'ordre, en commençant par
1
, et en comptant jusqu'à pas plus de99
. - La durée totale d'un album ne dépasse pas
9:59:59
.
Il s'agit de code-golf , donc le code le plus court (en octets) l'emporte.
Cas de test
Votre programme doit effectuer correctement la conversion présentée dans l'introduction (Radiohead's Kid A ). Voici un cas de test plus grand (Sufjan Stevens ' Illinois 1 ) avec de longues chaînes sur lesquelles votre programme devrait également travailler:
1. Concerning the UFO Sighting Near Highland Illinois - 2:08
2. The Black Hawk War - 2:14
3. Come On Feel the Illinoise - 6:45
4. John Wayne Gacy Jr - 3:19
5. Jacksonville - 5:24
6. A Short Reprise for Mary Todd Who Went Insane but for Very Good Reasons - 0:47
7. Decatur or Round of Applause for Your Stepmother - 3:03
8. One Last Whoo Hoo for the Pullman - 0:06
9. Chicago - 6:04
10. Casimir Pulaski Day - 5:53
11. To the Workers of the Rock River Valley Region - 1:40
12. The Man of Metropolis Steals Our Hearts - 6:17
13. Prairie Fire That Wanders About - 2:11
14. A Conjunction of Drones Simulating the Way - 0:19
15. The Predatory Wasp of the Palisades Is Out to Get Us - 5:23
16. They Are Night Zombies They Are Neighbors They Have Come Back from the Dead Ahhhh - 5:09
17. Lets Hear That String Part Again Because I Dont Think They Heard It All the Way Out in Bushnell - 0:40
18. In This Temple as in the Hearts of Man for Whom He Saved the Earth - 0:35
19. The Seers Tower - 3:53
20. The Tallest Man the Broadest Shoulders - 7:02
21. Riffs and Variations on a Single Note - 0:46
22. Out of Egypt into the Great Laugh of Mankind and I Shake the Dirt from My Sandals as I Run - 4:21
La sortie correcte est:
(0:00:00) Concerning the UFO Sighting Near Highland Illinois
(0:02:08) The Black Hawk War
(0:04:22) Come On Feel the Illinoise
(0:11:07) John Wayne Gacy Jr
(0:14:26) Jacksonville
(0:19:50) A Short Reprise for Mary Todd Who Went Insane but for Very Good Reasons
(0:20:37) Decatur or Round of Applause for Your Stepmother
(0:23:40) One Last Whoo Hoo for the Pullman
(0:23:46) Chicago
(0:29:50) Casimir Pulaski Day
(0:35:43) To the Workers of the Rock River Valley Region
(0:37:23) The Man of Metropolis Steals Our Hearts
(0:43:40) Prairie Fire That Wanders About
(0:45:51) A Conjunction of Drones Simulating the Way
(0:46:10) The Predatory Wasp of the Palisades Is Out to Get Us
(0:51:33) They Are Night Zombies They Are Neighbors They Have Come Back from the Dead Ahhhh
(0:56:42) Lets Hear That String Part Again Because I Dont Think They Heard It All the Way Out in Bushnell
(0:57:22) In This Temple as in the Hearts of Man for Whom He Saved the Earth
(0:57:57) The Seers Tower
(1:01:50) The Tallest Man the Broadest Shoulders
(1:08:52) Riffs and Variations on a Single Note
(1:09:38) Out of Egypt into the Great Laugh of Mankind and I Shake the Dirt from My Sandals as I Run
Classement
Pour que votre score apparaisse sur le tableau, il doit être dans ce format:
# Language, Bytes
1. Toutes mes excuses à Sufjan, dont j'ai dû modifier un peu les noms de pistes pour les adapter au format simple auquel ce problème est limité.
(h:mm:ss) Track Name
suivi immédiatement d'une nouvelle ligne.Réponses:
CJam,
605755 octetsMerci à Sp3000 pour avoir économisé 2 octets.
Testez-le ici.
Explication
la source
Perl, (93 caractères plus
-p
) 94 octetsCourir:
la source
C ++,
212209202189 octetsC ++ car .. pourquoi pas?
Vivre:
212209202189la source
Python 2,
170160octetsCela fait un moment que je n'ai pas fait de golf, j'espère que ce n'est pas trop mal: P
L'entrée doit être entourée de guillemets et divisée par des retours à la ligne, comme ceci:
la source
%d
pour le compteur d'heures (si je comprends bien les règles!) Pour-2
!input
àraw_input
) pour accepter le format exact; sinon je pense que ce n'est pas valide car il suppose des lignes dans un format différent.Gema, 151 caractères
Exemple d'exécution:
la source
Python 2,
207206 octetsUsage
la source
raw_input
que n'existait que dans Python 2.awk,
119101 octetsC'est bien plus long que je ne le souhaitais. Le problème est que%H
les heures ne sont pas formatées comme demandé, donc j'avais besoin de calculer les heures moi-même.Ack, je suis stupide. Les résultats de
strftime
étaient incorrects car je devais lui dire d'utiliser l'heure UTC. Cela a coupé 18 octets!Version 119 octets
la source