Решение Санты:
В этом задании вы поможете Санта-Клаусу решить, был ли кто-то в его списке непослушным или милым, и впоследствии получите coal
или toys
.
Но , к сожалению, Санта неорганизованная, в некоторых из его записей, то naughty
, nice
и name
поля находятся в неправильном порядке.
вход
Ввод поступит в следующем, взаимозаменяемом формате:
- имя человека (не может содержать только двоеточие
a-zA-Z0-9
) - слово,
naughty
за которым следует двоеточие и неотрицательное целое число, представляющее количество раз, когда Санта поймал вас на шалости - слово,
nice
за которым следуют двоеточие и неотрицательное целое число, представляющее количество раз, когда Санта замечал, что ты хороший
Все разделены одним пробелом (ASCII 32) между каждым из них.
Кроме того, имя не должно содержать пробелов между частями имени Santa Claus
-> SantaClaus
.
Бонус:
- (25%) : он Санта-Клаус, поэтому ему нужно дважды проверить список и убедиться в отсутствии дубликатов. (В этом случае он просто получает первые оценки, которые есть у пользователя)
Пример:
Quill naughty:4 nice:0
naughty:0 Doorknob nice:3
naughty:2 Quill nice:6
nice:3 balpha naughty:3
pops nice:4 naughty:2
Выход:
Вывод должен состоять из:
Имя человека, за которым следует:
- Если есть больше точек
naughty
, тоcoal
: - Если есть больше точек
nice
, тоtoys
. Но если
naughty
иnice
равны, тоneeds more data
Пример вывода:
- С организационным бонусом и бонусом за удаление дубликатов:
Quill coal
Doorknob toys
balpha needs more data
pops toys
- Без бонуса:
Quill coal
Doorknob toys
Quill toys
balpha needs more data
pops toys
Ответы:
Pyth, 68 байтов - 25% = 51
Попробуйте онлайн: демонстрация
источник
Юлия,
176169 байтЭто анонимная функция, которая принимает строку и печатает результат в STDOUT. Чтобы назвать его, дайте ему имя, например
f=s->...
.Ungolfed:
источник
Pyth - 64 байта
Постараюсь использовать упакованные строки.
Попробуйте это онлайн здесь .
источник
Ruby,
144123155 * .75 = 116,25 байтСпасибо гистократу за предложенный
grep
метод.164 * .75 = 123 байта
144 байта
Ungolfed
Использование:
источник
.select{|t|t[?:]}
можно сыграть в гольф.grep(/:/)
Perl,
13811310510310296 - 25% = 72включает +1 для
-p
Менее гольф:
nice
илиnaughty
как имя переменной;<=>
для индексации списка выходных строк.nice
илиnaughty
вместо 2-го.$$_ ? ... : ($$_++, ...)
в$$_++ ? ... : ...
(почему я не видел это раньше).
источник
JavaScript (ES6), 174 байта - бонус 25% = 130,5 балла
объяснение
Тест
Показать фрагмент кода
источник
CJam, 64 байта
Попробуйте онлайн!
источник
Lua, 329 байт - бонус 25% = 246,75
Отредактирую в негольфированной версии и объяснениях позже, немного уставший на данный момент. Все данные вводятся через командную строку, разделенные пробелом.
источник
Python 2, 206 байт - 25% = 154,5
источник
JavaScript (ES6) 120 (160-25%)
Анонимная функция, использующая строки шаблона, есть 4 новых строки, которые являются значительными и включены в число байтов
источник