"YMCA" - это популярная дискотека песни Village People, в которой есть известный танец . Напишите самую короткую программу для вывода заглавных букв «Y», «M», «C» и «A», синхронизированных с припевом песни.
Как правило, одна буква идет в каждой строке, отправленной на стандартный вывод. В первую очередь это должно упростить программы, подверженные выходной буферизации стандартной библиотеки C (печать новой строки сбрасывает выходной буфер), так что вы можете пропустить любой или все эти новые строки, если такое пропускание сделает вашу программу короче.
Ваша программа, которая запускается одновременно с музыкой, должна выводить букву «Y» в течение 0,125 с каждого из этих моментов времени после запуска (в секундах; я определил это по музыкальному видео, размещенному на 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
Буквы «M», «C» и «A» соответственно идут через 0,930 с, 1,359 с и 1,628 с после каждого «Y». В целях тестирования эти относительные времена преобразуются в абсолютные, добавляя их ко времени предшествующего «Y».
Я написал тестовую программу и соответствующий пример программы на C, в которой предполагается, что после каждой буквы стоит новая строка (хотя это не правило соревнования). Он написан для Linux и не будет работать в Windows без использования Cygwin. Если вы не можете проверить свою заявку с помощью тестовой программы, по крайней мере, проверьте свою отправку на видео YouTube .
Если для представления требуется специальный параметр командной строки для правильного поведения, этот параметр командной строки учитывается при подсчете очков. Однако время запуска любого переводчика не учитывается, и тестовую программу можно изменить, чтобы приспособить ее к необходимости.
Хотя я сомневаюсь, что что-то существует, я должен сказать, что использование функции языка программирования или библиотеки, разработанной специально для этой задачи, запрещено.
Рубин
180 135 124 118 108104источник
%w(Y M C A)*15
вместо того,'Y M C A'.split*15
чтобы генерировать письма? Также этоeach
может быть,map
даже если вам не нужен вывод. Ох, и вы можете написать10.0
как1e1
!Python2,6 (
82) (214) (219) (196) (185) (152)Исправлена. Бежал против видео и кажется точным. В большинстве случаев удалось сохранить несколько символов, уменьшив точность с 3 до 2 (спасибо за подсказку @JPvdMerwe).
Единственная проблема заключается в том, что тестер показывает огромное расхождение во времени. Он начинается не синхронизировано и пытается вернуться в синхронизацию. В двух тестовых примерах это было более 175 секунд несинхронно в начале и вернулось в пределах 0,342 и 0,451 секунды после синхронизации.
источник
-u
командной строки в счетчик.-u
это необходимо для программы-тестера (которая использует канал), а не для вывода непосредственно на терминал.Математика, 157
Я посмотрел все видео, чтобы подтвердить время. YMC A .... YMC A ...
Оно может быть короче с меньшей точностью, но тогда мне придется снова посмотреть видео, чтобы убедиться, что оно не было выключено более чем на 125 в конце. лол
источник