"YMCA" es una popular canción disco de Village People que tiene un baile muy conocido . Escriba el programa más corto para generar las letras mayúsculas "Y", "M", "C" y "A" sincronizadas con el coro de la canción.
Generalmente, una letra va en cada línea enviada a la salida estándar. Esto es principalmente para simplificar los programas sujetos al almacenamiento en búfer de salida de la biblioteca estándar de C (imprimir una nueva línea vacía el búfer de salida), por lo que puede omitir cualquiera o todas estas nuevas líneas si dicha omisión acortaría su programa.
Su programa, que se inicia al mismo tiempo que la música, debe emitir la letra "Y" dentro de 0.125 s de cada uno de estos tiempos después de comenzar (en segundos; lo determiné a partir del video musical publicado en YouTube).
45.766 49.611 60.889
64.661 109.816 113.591
124.810 128.687 173.830
177.620 188.950 192.724
204.013 207.739 219.057
Las letras "M", "C" y "A" vienen respectivamente 0.930 s, 1.395 sy 1.628 s después de cada "Y". Para fines de prueba, estos tiempos relativos se convierten en tiempos absolutos agregándolos al tiempo de la "Y" precedente.
He escrito un programa de prueba y un programa de ejemplo correspondiente en C que supone que una nueva línea sigue a cada letra (aunque esto no es una regla de competencia). Está escrito para Linux y no funcionará en Windows sin usar Cygwin. Si no puede probar su envío utilizando el programa de prueba, al menos verifique su envío con el video de YouTube .
Si su envío requiere una opción especial de línea de comandos para comportarse correctamente, esa opción de línea de comandos cuenta al calcular su puntaje. Sin embargo, cualquier tiempo de inicio del intérprete no cuenta en su contra, y el programa de prueba se puede modificar para acomodarlo si es necesario.
Aunque dudo que exista, debo decir que está prohibido usar una función o biblioteca de lenguaje de programación diseñada específicamente para esta tarea.
Rubí
180 135 124 118 108104fuente
%w(Y M C A)*15
lugar de'Y M C A'.split*15
generar las letras? Además, esoeach
podría ser un problemamap
aunque no necesite la salida. Ah, y puedes escribir10.0
como1e1
!Python2.6 (
82) (214) (219) (196) (185) (152)Fijo. Corrió contra el video y parece exacto. Se ahorraron algunos caracteres al reducir la precisión de 3 a 2 en la mayoría de los casos (gracias por la sugerencia @JPvdMerwe).
El único problema es que el probador muestra una gran discrepancia en los tiempos. Comienza sin sincronizar e intenta volver a sincronizarse. En los dos casos de prueba, la sincronización estuvo más de 175 segundos sin sincronizar al principio y volvió a estar dentro de 0.342 y 0.451 segundos de estar nuevamente sincronizado.
fuente
-u
opción de línea de comando en el recuento.-u
es necesario para el programa de prueba (que usa una tubería), no para enviarlo directamente a un terminal.Mathematica, 157
Vi todo el video para confirmar el momento. YMC A .... YMC A ...
Podría ser más corto con menos precisión, pero luego tendría que ver el video nuevamente para confirmar que no estaba apagado por más de .125 al final. jajaja
fuente