Мы получили 408 решений от 237 различных участников (в конкурсе участвует только одно, последнее из решений от каждого участника, и мы публикуем именно последние варианты). Кроме того, 14 решений было отправлено нам либо после окончания срока приёма работ, либо сотрудниками Hola, и мы рассмотрели их вне конкурса.
64 решения, или 16% от общего числа, были отправлены в течение последних суток до окончания срока. Из них 15 были отправлены в течение последнего часа, а самое последнее «проскочило» за 34 секунды до дедлайна.
Тесты на корректность прошли 92 программы, что составляет 39% от числа протестированных. Кроме того, корректными признаны 10 из внеконкурсных решений.
Самое короткое решение уместилось ровно в 666 байт, а самое длинное растянулось на 90274 байт.
Один из участников был дисквалифицирован за попытку обмануть тестовую систему. Забавно, что его результат всё равно уступил честным результатам победителей конкурса. Ещё один участник прислал решение с говорящим названием
volkswagen.js
: оно работает медленно, но корректно при малом размере входных данных, и быстро выдаёт фальшивые результаты при большом размере.Поздравляем победителей:
- Роман Плетнев — приз 1500 USD.
- Андрей Кашта — приз 1000 USD.
- Евгений Зейлер — приз 500 USD.
Дополнительно мы решили наградить автора самого короткого корректного решения. Специальный приз в 350 USD получает Надав Ивги.
Полная таблица результатов и подробности о тестировании — в репозитории на GitHub. Здесь подробности о причинах пересмотра результатов.
Мы приносим извинения участникам, которые были ранее объявлены победителями конкурса по ошибке.
Мы постараемся учесть многочисленные замечания участников при подготовке следующего конкурса. В частности, в следующий раз входные данные для тестов на производительность или хотя бы их объёмы будут опубликованы заранее. Кроме того, будет выделено время между публикацией всех тестов и решений и объявлением победителей. В эти несколько дней можно будет прислать дополнительные тесты на корректность, а также сообщить об изъянах в системе тестирования.
В промежутках между конкурсами мы тоже приглашаем на работу программистов на JS (браузер и Node.js) и C. Если Вас интересует работа в Hola, или Вы знаете кого-то, кто может нам подойти, пишите по адресу larisa@hola.org. Если Вы приведёте кого-то, кто пройдёт отбор и проработает у нас первые три месяца, мы заплатим Вам 7000 USD.
Комментарии (16)
arusakov
14.01.2016 16:33С 69 места на 8 — очень неплохо! Спасибо за обновленную тестовую систему, наконец-то оптимизации заиграли всеми красками :)
spmbt
14.01.2016 16:34Было бы интересно посмотреть на табличку усреднённых производительностей решений первых 10-15 участников (по тестам), чтобы оценить, за какие проценты скорости шла битва. Организаторы, покажете?
feldgendler
14.01.2016 17:09+1Не понял вопрос. В таблице для каждого участника приведено лучшее время из 10 запусков. Тест на производительность ровно один (
large
), и скрипт для его генерации находится в директорииtest
.
spmbt
14.01.2016 17:15+1А, да, на Гитхабе же всё. Приложу сюда для наглядности
1 Roman Pletnev 231 2549 Ouanalao 260 2676 Hors concours 2 Andrew Kashta 281 2917 Pavel Gruba 286 2993 Hors concours 3 Evgeny Zeyler 292 2351 Vitaliy (vint) 304 2837 Hors concours 4 Yuri Kilochek 332 2130 Ecma Scripter 333 2711 Disqualified[1] 5 Alex Kheben 360 2953 6 Igor Klopov 367 2745 Maksim Razumenko 368 3555 Hors concours 7 Sergey Golub 375 3891 8 Alexander Rusakov 382 3495 9 Denis Bezrukov 394 3581 10 Vitalii Petrychuk 403 3701
Lure_of_Chaos
14.01.2016 17:11+3Самое короткое решение уместилось ровно в 666 байт
Никак помощь со стороны :))
datacompboy
14.01.2016 18:24+2Всё-таки, следует _четко_ и _подробно_ расписать ПОЧЕМУ было произведено перетестирование.
Из комментариев вытаскивать сложно большинству, а факт того, что пересмотр не потому, что изменили правила не очевиден
feldgendler
14.01.2016 21:29О причинах был отдельный пост: habrahabr.ru/company/hola/blog/274961
datacompboy
14.01.2016 22:29+1Первое же в том посте должна быть жирная причина, та, которая заставила изменить решение и поменять.
Вместо этого там «мы получили много жалоб». Что вызывает ощущение, что изменение условий под давлением жалоб, тогда как это не так.
whoozle
17.01.2016 15:57Мне кажется, чтобы сохранить лицо, можно было бы выдать ВТОРОЙ комплект призов, чтобы не обижать несчастных рязанских программистов. И не было бы никаких срачей. Это же и есть то самое признание ошибок, которое «в ДНК»? Все рады, ошибки признаны, никто не злится, хола на коне. Денег-то в масштабах даже небольшой компании — тьфу.
Нет же, надо было бодаться, пересматривать, ругацо со всеми.
zBit
Вот теперь оценка производительности более объективная, я доволен!
Спасибо за конкурс, было интересно :) Жаль, что не удалось занять призовое место, но 5-ое место тоже очень не плохой результат :)
А такая производительности у меня потому, что в моём решении есть несколько стратегий сравнения и если во входных данных у правил не было вариантов с вопросительным знаком и только с одной звёздочкой, то работала одна из самых быстрых в моём решении стратегия сравнения, без использования регулярных выражений.
А можно где-нибудь достать именно тот набор данных, который вы использовали при тестировании производительности? Мне чисто из любопытства какие правила были и их сложность посмотреть.
feldgendler
Об этом написано в
README.md
: сами данные мы туда не включили из-за большого объёма, но в директорииtests
есть скрипт, который их в точности воссоздаёт, используя фиксированное значение pseudorandom seed.zBit
Спасибо, не заметил, вечером посмотрим :)