Комментарии 16
В последствии дорешивал задачи, но так и не справился с лабиринтом — видимо всё ещё не поправили.
Очень интересно, с чем же связана проблема и можно ли решить задачу на сто процентов в текущих условиях.
В первой задаче специально имена подбирались для получения нецензурной регулярки? :)
Спасибо, было интересно оценить такого рода "олимпиадные задачи". Лабиринт понравился особо: некоторое время назад я пилил личный проект (своего рода point-and-click-квест) на Electron + React, и само понимание, сколько всего можно сейчас сделать, по сути, на чистом DOM, разглядел, можно сказать, на практике.
А в логотипе Яндекс такси (или что то похожее на него) тень под прямоугольником можно было делать хоть под 45 градусов всё равно тест проходил успешно.
В следующий раз внимательней пишите автотесты)
Мне попалась третья задача, которая совершенно не сравнима с разобранной задачей по сложности.
Я уже не помню точно, но картинка была примерно такая: прямоугольник с скруглёнными внутрь углами, внутри кайма красного цвета, несплошная и не dotted браузеров.
И белый круг слева по центру, примерно как на изображении:
Ждал разбора исключительно чтобы понять, каким образом сделать такое на одном лишь div.
12 задача, кстати, эквивалентна поиску максимальной взвешенной клики в графе с вершинами-реквестами, взвешенными числом файлов в них, и ребрами, которые существуют между парой вершин нет конфликта.
В финале же получился легкий бардак, который был виден даже по чату. Ощущение сложилось, что отборочный составляли энтузиасты, а финал делался «из под палки» :).
Задача 7 — вам уже выше написали, тестовая система пропускала вообще левые решения. Можно было сделать text-direction: rtl;, отступ первой строке, спозиционировать кнопку абсолютом и не было бы даже наложения текста, но решение сразу валится на тексте «ABC.» т.к. rtl точку вперед вынесет. В-общем задаче явно не хватало проверочных тестов.
Задача 8 — в поставленной формулировке совсем тривиальная. Ну куда ж там ограничение в 10кб, гораздо интересней было ограничить количество элементов.
Задача 9 — вообще про node.js :) Не оно конечно знать полезно и для работы надо, но тем у кого бекендом на проектах выступает пхп тут было сложнее. Главный же минус опять в тестовой системе и постановке задачи.
- Надо разобраться с сервисом ранкит (ничего сложного но пяток минут отдай).
- 2 и 3 тест имели неоднозначность в плане порядка проверок — если мы еще до вызова .connect() могли проверить отсутствие номера в памяти то зачем дергать этот метод? (а тест проходился только если приходила ошибка подключения, даже если номер отсутствовал).
- В последнем тесте легко понять в чем состоит задача, но тут как раз имеем проблему с теми кто с нодой не работал — пхп не сохраняет состояние между вызовами, т.е. надо знать принцип работы ноды. Решается кстати глобальной переменной, я конечно понимаю что такое решение попахивает, но здесь же олимпиада на скорость, а не построение хорошего кода :)
Задача 10 — отдельная песня. Я думаю авторы сами пожалели, что добавили ее :) Сама задача интересная, но стенд ведет себя просто непредсказуемо. Я например вымерял все пиксель в пиксель, решение проходит больше половины тестов. Добавляем отступ снизу — решение проходит опять больше половины тестов причем закрывает все непрошедшие в первый раз :) Скрестить два варианта в один мне так и не удалось (я уже думал добивать прямоугльные игровые поля до квадратов отступами, но это влияет лишь на часть тестов и полностью все 100% так и не закрывает). Потратил кучу времени из интереса, но в итоге плюнул так и не добившись результата.
PS За конкурс авторам большое спасибо. И пусть впечатление от финала смазалось, в целом получилось весьма интересно.
тестовая система пропускала вообще левые решения
К сожалению, проверки отработали не совсем корректно. Там довольно сложная логика. В будущем постараемся больше времени уделять тестированию.
Также надеемся, что, несмотря на тесты, хотя бы часть людей решили задачу честно и получили от этого удовольствие.
Задача 8 — в поставленной формулировке совсем тривиальная.
Интересно, каким было ваше решение. Расскажите подробнее.
Ну куда ж там ограничение в 10кб, гораздо интересней было ограничить количество элементов.
Ограничение в 10кб нужно, чтобы участники не генерировали верстку каритнки отдельными пикселями. А для чего предлагаете ограничение на количество DOM-элементов?
Интересно, каким было ваше решение. Расскажите подробнее.
Я отправил решение с 11 элементами (11-ым был враппер, но его может body заменить). Вообще легко решалось с 8-ю элементами. Но ради интереса в итоге сделал используя всего 5 дивов — jsfiddle.net/IvAndrew/ro3d08we.
Просто как идея (вряд ли сейчас такой функционал есть): можно было бы сделать начисление баллов в обратной пропорциональности к числу использованных элементов.
Ограничение в 10кб нужно, чтобы участники не генерировали верстку каритнки отдельными пикселями.
Не очень понял, что вы под пикселями подразумевали? Я ради интереса попробовал решение с js (генерация канвас или добавление кучи дивов), но стенд не пропускает. Если же должен пропускать, то такое решение легко укладывается в 10 кб — картинка представлена в виде карты с квадратами 10*10.
С canvas — jsfiddle.net/IvAndrew/nmtqyb16
C генерацией кучи дивов — jsfiddle.net/IvAndrew/gkxvu5on
Про решение с использованием минимального количества элементов — интересная идея! Будем иметь в виду в будущем.
Фронтенд, алгоритмы и опоссум Фридрих. Разбираем задачи конкурса Яндекса