"YMCA" è una popolare canzone da discoteca dei Village People che ha una danza ben nota . Scrivi il programma più breve per produrre le lettere maiuscole "Y", "M", "C" e "A" sincronizzate con il ritornello della canzone.
Generalmente, una lettera va su ogni riga inviata all'output standard. Questo principalmente per semplificare i programmi soggetti al buffering di output della libreria standard C (la stampa di una nuova riga svuota il buffer di output), quindi è possibile omettere una o tutte queste nuove righe se tale omissione renderebbe il programma più breve.
Il tuo programma, che viene avviato contemporaneamente alla musica, deve emettere la lettera "Y" entro 0,125 s da ciascuna di queste volte dopo l'avvio (in secondi; le ho determinate dal video musicale pubblicato su 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
Le lettere "M", "C" e "A" sono rispettivamente 0.930 s, 1.395 s e 1.628 s dopo ogni "Y". A scopo di test, questi tempi relativi vengono convertiti in tempi assoluti aggiungendoli al tempo della "Y" precedente.
Ho scritto un programma di test e un corrispondente programma di esempio in C che presume che una nuova riga segua ogni lettera (anche se questa non è una regola di concorrenza). È scritto per Linux e non funzionerà su Windows senza usare Cygwin. Se non riesci a testare il tuo invio utilizzando il programma di test, almeno controlla il tuo invio rispetto al video di YouTube .
Se l'invio richiede una speciale opzione della riga di comando per comportarsi correttamente, tale opzione della riga di comando viene conteggiata nel calcolo del punteggio. Tuttavia, qualsiasi tempo di avvio dell'interprete non conta nei tuoi confronti e il programma di test può essere modificato per adattarlo, se necessario.
Anche se dubito che ne esista una, devo dire che è proibito l'uso di una funzione del linguaggio di programmazione o di una libreria progettata appositamente per questo compito.