На открытии сцены восстания Темного Рыцаря происходит довольно неловкий диалог между агентом ЦРУ и злодеем Бэйном.
Агент ЦРУ: «Если я сниму эту [маску], ты умрешь?»
Бэйн: «Было бы очень больно ...»
Агент ЦРУ: «Ты большой парень».
Бэйн: «… для тебя»
Не ясно, намеревается ли Бэйн сказать «больно тебе» или «большой парень за тебя». Давайте решим эту проблему раз и навсегда с помощью игры в гольф!
Вызов
Ваша задача - написать программу, которая переупорядочивает вышеприведенный диалог в зависимости от целого числа, указанного в качестве входного.
Слова диалога с агентом ЦРУ:
If
I
pull
that
off
will
you
die?
You're
a
big
guy.
Слова диалога Бэйна:
It
would
be
extremely
painful...
for
you!
Обратите внимание , что die?
, You’re
, painful...
и you!
рассматриваются как отдельные слова.
- Учитывая целое число n в качестве входных данных, преобразовать его в двоичную
- Считывая двоичные цифры слева направо, выведите следующее слово из диалога агента ЦРУ, если это цифра
1
, и следующее слово из диалога Бэйна, если это цифра0
. Слова должны быть разделены пробелом. Когда динамик изменится, добавьте перевод строки. Кроме того, добавьте к каждой строке диалога имя докладчика (BANE:
илиCIA:
).
Вы можете предположить, что ввод всегда начинается с 1 в двоичной форме и имеет 12 единиц и 7 нулей.
пример
522300
Преобразовано в двоичный файл:
1111111100000111100
Число начинается с 8, поэтому мы выводим 8 первых слов из диалога агента ЦРУ и добавляем их в префикс ЦРУ:
CIA: If I pull that off will you die?
Затем мы получили 5 нулей, поэтому мы получили 5 первых слов из диалога Бэйна:
BANE: It would be extremely painful...
Тогда есть 4 из них, поэтому мы выводим 4 следующих слова ЦРУ:
CIA: You’re a big guy.
Тогда 2 нуля:
BANE: for you!
Конечный результат:
CIA: If I pull that off will you die?
BANE: It would be extremely painful...
CIA: You’re a big guy.
BANE: for you!
Больше тестовых случаев:
494542
CIA: If I pull that
BANE: It would be
CIA: off
BANE: extremely
CIA: will you die? You're
BANE: painful... for
CIA: a big guy.
BANE: you!
326711
CIA: If
BANE: It would
CIA: I pull that off will you
BANE: be extremely painful... for
CIA: die? You're
BANE: you!
CIA: a big guy.
Ответы:
Pyth - 138 байт
Я должен посмотреть на сжатие сценария фильма.
Тестовый пакет .
источник
JavaScript (ES6),
203201 байтРедактировать: сэкономил 2 байта, бесстыдно позаимствовав
trim()
идею из ответа ETHproductionsКонтрольные примеры
Показать фрагмент кода
источник
JavaScript (ES6),
209202201 байтСтарый подход:
Тестовый фрагмент
источник
trim()
идею. Я был уверен, что было что-то лучше,slice(1)
но не мог понять это.С ++ 11 (GCC),
298293 байтаЛямбда-функция, которая принимает целое число и возвращает диалог как
std::string
. Вы можете увидеть это в действии здесь .Беззвучная версия (с некоторыми пояснениями):
источник
JavaScript (ES6),
252 227226 байтиспользование
Заметки
Это игра в гольф, я думаю, что я все еще могу сбрить некоторые байты, но не стесняйтесь оставлять предложения в комментариях.
источник
Python 3.6, 232 байта
Изменить , эквивалентно:
источник
Japt, 121 байт
Содержит много непечатных документов, так что вам будет лучше протестировать его онлайн .
источник
Perl 6 , 211 байт
источник
C #,
398390385396389 байтЗапустить с номером входа в качестве параметра.
Ungolfed:
Вернемся к 396 байтам, потому что я не заметил правила "нет новой строки в начале".
источник
s.Replace("1",c[k++]).Replace("0",b[l++])
не заменяет соответствующими словами. Кажется, C # получает заменяющую строку один раз и удаляет ее местами.Рубин, 204 + 1 = 205 байт
Требуется
-n
флаг.источник
PHP, 198 байт
источник
Perl, 205 байт
Поместите это в файл с именем 494542 и запустите так:
Протестировано на Perl v5.22
источник
Clojure, 401 байт
Призвание:
Ungolfed
источник