Как стать автором
Обновить

Комментарии 16

В задачах не указаны ограничения на максимальное значение входных данных, размер входных массивов, используемый алфавит. В последней задаче не указано, какой радиус Земли брать — экваториальный, полярный, средний?

Добавили уточнение: радиус Земли принять равным 6371 км.

Я правильно понимаю что в файле in.txt будет для каждого прогона одно число или строка? В таком случае чтение из файла, да и даже вывод результата в поток занимают времени больше чем выполнение алгоритма. Во всяком случае для первой задачи. Что превращает задачи не в написание оптимального алгоритма, а в поиск самых быстрых способов чтения из файла и вывода на выбранном ЯП.

Количество способов прочесть строку или несколько из входного файла в указанных языках крайне ограничено. Да, если сделать ввод/вывод как-то очень неоптимально, то это будет большой минус. Ну что ж, значит - не надо его делать неоптимально, перебрать несколько вариантов - не сложно, если нет уверенности в том, какой оптимальнее. Ну и в конце концов, не корову же разыгрываем :) Будем считать это разминкой, а в новом году попробуем провести лучше и для взрослой аудитории!

В задаче с факториалами можно ли использовать GMP или BC Math? Величина факториала будет ограничена PHP_INT_MAX или может быть любое значение, например 1000!?

Насколько я вижу, приведенное в последней тестовой паре значение (8841761993739701954543616000000) уже существенно больше, чем PHP_INT_MAX во всех стандартных реализациях. А иначе это было бы слишком просто :)

Нет, никакие расширения, которые не включены по умолчанию, использовать нельзя. Но за вопрос спасибо, в следующий раз во избежание неоднозначностей нужно будет явно прописать список включенных расширений.

Нет, никакие расширения, которые не включены по умолчанию, использовать нельзя.

Если что, то FFI включён по умолчанию в консольном режиме… Получается, что можно написать обёртку над GMP руками и прокидывать их в пых, вместо использования расширения… Т.е. GMP использовать можно, но только дописав обёртку под него.


П.С. С другой стороны, ещё ничего не сказано про функции запуска, т.е. можно через exec, например, поставить нужное расширение (или скачать из сырцов и скомпилить) и запустить код уже с ним)))

Уточните пожалуйста в задаче про вирусы для строки "ababa abababa" выводить значения с учетом перекрытий или без? Например, для "aba" - 3 или 5?

Если бы перекрытия "не считались", это приводило бы к неоднозначностям, и противоречило бы приведенным тестовым данным. В приведенной Вами строке aba - 5.

Чтобы не было неоднозначностей и надо уточнять ТЗ.

Вот еще один момент противоречивости в том же задании:

  • В документе использовались первые три буквы от наименований производителей.

  • Чтобы как-то восстановить документ, необходимо написать функцию, которая возвращает повторяющиеся группы из трех знаков идущих подряд

  • Выходные данные: строки, где через запятую выведены группы повторяющихся букв

    Ведь пробел - это не буква, но это точно знак. Для такого входа "avava avavava as" согласно текущему ТЗ если смотреть по знакам, получаем на выходе "a a,2,ava,5,va ,2,vav,3". Или вса таки нет? :-)

Да, а ещё вопрос в том, какой алфавит использован (только латиница, латиница + кириллица, произвольный алфавит). Регистрозависимая строка или нет. Могут ли в ней быть спецсимволы и что с ними делать.
По хорошему, в таких заданиях должны указываться ограничения на каждый входной параметр — тип значения, диапазон, предельный размер списка, алфавит и т.п.

Конечно, по-хорошему Вы правы. И я (участвуя много раз в жизни в проведении школьных олимпиад по математике) всегда тратил вместе с коллегами немало времени на то, чтобы максимально "вылизать" условия всех задач. По счастью, тут у нас все же не настолько ответственная задача :) Просто когда закончился "хакатон" для школьников - кому-то из нас вдруг пришла в голову мысль: "А зачем хорошим задачам пропадать?! Давайте их чуть-чуть усложним и поделимся с хабровцами!". Ну а в последний момент решили провести это в форме предновогоднего ненапряжного конкурса.

Что касается алфавита - используется только латинский алфавит, только нижний регистр. Как в примерах.

ЛИБО на PHP 8.0, ЛИБО на Python 3.6

А почему нет JS?

Потому что js - это не язык программирования,

а джаваскриптизиоры - не программисты.

js - это не язык программирования

js - такая же "скриптовая хрень", как пхп или питон

Всем большое спасибо, что присоединились к конкурсу, прислали решения и дождались результатов!
Ниже представляем итоги в порядке убывания суммы баллов, в скобках баллы за каждую задачу. 

Баллы за решения на Python

  1. Анна Табеева: 675 (135,  80, 70, 180, 70, 80, 60) - победитель, 1 место.

  2. Константин Шмураков: 620 (0, 100, 80, 200, 100, 60, 80) - призер, 2 место.

  3. Евгений Иванов: 600 (150, 90, 90, 0, 90, 90, 90) - призер, 3 место.

  4. Алексей Демцов: 370 (0, 70, 100, 0, 0, 100, 100) - призер, 4 место.

  5. Максим Казадаев: 340 (0, 60, 60, 0, 80, 70, 70) - призер, 5 место.

Баллы за решения на PHP

  1. Сергей Рахматулин: 990 (150, 90, 90, 200, 100, 135, 225) - победитель, 1 место.

  2. Алексей Антонюк: 600 (0, 100, 100, 0, 0, 150, 250) - призер, 2 место.

Критерии и порядок подсчета баллов можно найти в первой части поста. Если вы прислали решение, но вас не оказалось в списке, напишите, пожалуйста, мне в ЛС. В ближайшие дни отправим призы всем участникам, которые прислали свои адреса! 

Зарегистрируйтесь на Хабре, чтобы оставить комментарий