IDFPC results
Dec. 17th, 2012 06:35 pmОтведенные на контест 72 часа истекли, и таблица результатов на этот момент выглядела следующим образом:
(показаны те, кто хоть немного продвинулся, всего в таблице почти полсотни имен)
Инструментами настоящих хакеров стали Джава, Питон, Си, Руби и C#. Хаскель пришел четвертым, а за ним нетипичные Racket и Vala. Мои поздравления всем победителям и участникам! Особенно добрый коллега
_darkus_ вызвался наградить победившую команду THIRTEEN материальными призами, которые они могут получить при личной встрече в Москве или по почте (доставка за счет получателя). Подробности у него в посте.
Ссылки на кое-какие отчеты о соревновании есть в комментариях к посту с условием. Пополнения приветствуются!
Я очень рад, что все получилось, т.к. боялся, что спецификации могут быть слишком недоспецифицированными или непонятными, но полтора десятка команд/участников, набравших 100% - это очень хорошо. Для меня было неожиданностью, что в ВМ, реализующейся в 15 строк, народ сумеет наделать столько случайных ошибок (у кого не так NOT работал, у кого вместо OR'a XOR был), но даже с ошибками их ВМ будет работать достаточно хорошо, чтобы пройти дальше. Про устройство конкурса, как это все было сделано и как работало, скоро напишу отдельно.
Сервер, принимающий коды и показывающий результаты, останется работать на неопределенно долгое время, поэтому те, кто не успел поучаствовать, но хотел бы пройти самостоятельно квест, смогут это сделать.
| Pos. | Score | Team name | Language(s) | Members |
| 1 | 100 | THIRTEEN | Java, Python | 4 |
| 2 | 100 | nbu | whatever | 1 |
| 3 | 100 | hack_the_loop | C# | 3.5 |
| 4 | 100 | lazy elf | haskell | 1 |
| 5 | 100 | aankor | Racket, Python, Vala | 2 |
| 6 | 100 | zhl | C++, perl | 1 |
| 7 | 100 | dfyz | Go | 1 |
| 8 | 100 | _winnie | C++,bash,python | 1 |
| 9 | 100 | codingteam | C/C++, Haskell | 3 |
| 10 | 100 | 00 | Русский | 0 |
| 11 | 100 | IKS | haskell | 1 |
| 12 | 100 | SharpC | C++ | 1 |
| 13 | 100 | SKI | C#,MATLAB | 1 |
| 14 | 100 | Darkus | Haskell | 1 |
| 15 | 100 | Yakov | java | 1 |
| 16 | 72 | xaep | python | 1 |
| 17 | 72 | Anton Dubovik | Haskell | 1 |
| 18 | 58 | YanTayga | C++ | 1 |
| 19 | 48 | Nightingale | Python | 1 |
| 20 | 43 | testy | abc | 1 |
| 21 | 15 | team_fox | Dutch | 1 |
| 22 | 15 | Druu | Racket | 1 |
| 23 | 15 | ygrek | ocaml | 1 |
| 24 | 15 | jabber.ru | Ocaml | 1 |
| 25 | 15 | ADEpt | Haskell, OCaml | 1 |
| 26 | 15 | Oleg Tsarev | C++, Python | 1 |
| 27 | 15 | kirillkh | ? | 1 |
| 28 | 15 | dmytrish | Haskell | 1 |
| 29 | 15 | Heratorz | it depends | 1 |
| 30 | 15 | Vlad | python | 1 |
| 31 | 15 | att | matlab | 1 |
(показаны те, кто хоть немного продвинулся, всего в таблице почти полсотни имен)
Инструментами настоящих хакеров стали Джава, Питон, Си, Руби и C#. Хаскель пришел четвертым, а за ним нетипичные Racket и Vala. Мои поздравления всем победителям и участникам! Особенно добрый коллега
Ссылки на кое-какие отчеты о соревновании есть в комментариях к посту с условием. Пополнения приветствуются!
Я очень рад, что все получилось, т.к. боялся, что спецификации могут быть слишком недоспецифицированными или непонятными, но полтора десятка команд/участников, набравших 100% - это очень хорошо. Для меня было неожиданностью, что в ВМ, реализующейся в 15 строк, народ сумеет наделать столько случайных ошибок (у кого не так NOT работал, у кого вместо OR'a XOR был), но даже с ошибками их ВМ будет работать достаточно хорошо, чтобы пройти дальше. Про устройство конкурса, как это все было сделано и как работало, скоро напишу отдельно.
Сервер, принимающий коды и показывающий результаты, останется работать на неопределенно долгое время, поэтому те, кто не успел поучаствовать, но хотел бы пройти самостоятельно квест, смогут это сделать.
no subject
Date: 2012-12-17 11:52 am (UTC)no subject
Date: 2012-12-17 12:00 pm (UTC)no subject
Date: 2012-12-17 01:47 pm (UTC)darkus.14@gmail.com(с каким-нибудь подтверждением, что это действительно кто-то из команду :), чтобы мы могли договориться о передаче призов.no subject
Date: 2012-12-17 04:32 pm (UTC)no subject
Date: 2012-12-17 04:46 pm (UTC)no subject
Date: 2012-12-17 04:59 pm (UTC)no subject
Date: 2012-12-17 05:16 pm (UTC)Yakov. Микроотчет
Date: 2012-12-17 06:19 pm (UTC)Про контест вспомнил поздно вечером в пятницу. Решил глянуть одним глазком на задачу. В итоге через 7-8 часов был третьим, 100 баллов было только у THIRTEEN. Но к тому времени я получил кадр из фильма, и интерес искать последнее кодовое слово угас. А до этого и после было следующее.
В гипертекстовый фидонет (привет Мицголу, да?) попал, три картинки нарисовал. Следующую(ие) искал брутфорсом. Со всех возможных точек во все возможные направления. Ограничения - не менее 500 нарисованных отрезков (вот тут я и пропустил одно кодовое слово), перо не выходит из области 400 * 200, длина рисуемого отрезка не превышает 20. Получил массу картинок. Все их просмотрел, нашел спецификацию VVVM.
Время работы VVVM у меня было органичено 10 000 итераций. Кодовое слово MANIAC с IP = 32 получил. Решил брутфорсить все адреса, в которых находится инструкция VVVM (страшие 16 бит в диапазоне от 1 до 11). Получил слово Wadler с IP = 36 и еще кое-что интересное с бОльших адресов (текст про огромное количество процессов, "заготовки" программ). Понял, что 10 000 итераций мало. Сначала увеличил до 100 000, потом до 1 000 000, потом и до 1 000 000 000. Машина выдала примерно 180 Мб текста, и такты кончились. Запустил с ограничением в 2 000 000 000 циклов. Получил > 230 Мб текста.
Пока машина молотила биты, посмотрел внимательно на тексты "программ". Они мне напомнили курс численных методов решения задач в институте. В голове всплыли слова вроде "разностная схема "крест", двумерные задачи". И я не стал делать никаких миллионов процессов с почтовыми ящиками. Миллион значений предыдущего "слоя", миллион - текущего, миллион множителей, миллион аддитивных членов, четыре миллиона индексов источников. И тупой парсер типа "между 'Value <- ' и ' * ' находится множитель, между '/ 64 ' и '.' - аддитивный член".
Получил картинку. А что делать с ней - не знаю. Вижу, что это кадр из фильма "Люди в Черном", хотя я это фильм ни разу не смотрел. А задание-то и забыл! Думаю, здесь какое-то очередное кодовое слово запрятано. Давай в интернете искать этот кадр и что на нем изображено (я ведь фильм не смотрел). Пробовал имя актера, имя героя, какое-то название гаджета, что в руках у человека в кадре. Ничего не подходит. Ну, думаю, пора спать. Уже утро на дворе. Дай, думаю, "men in black" напишу, вдруг подойдет. И, что характерно, подошло! И я на третьем месте! Но попасть на второе сил уже не было.
По полученным очкам понял, что пропустил кодовое слово еще до Wadler. Потому что с этим словом слишком далеко продвинулся.
На следующий день рассказал сыну, что есть (были!) шансы стать хотя бы вторым. Но к компьютеру добрался только в воскресенье, когда уже и в десятку было не попасть. Почитал комментарии, отчеты. Какие-то мудрёные способы поиска страничек в фидонете. Я до такого не додумался бы. А додумался я до другого метода. Надо ведь по честному 100 очков набирать. Способ такой. 4 картинки у меня есть. Снова перебираем все варианты, только ослабляем органичение на количество нарисованных отрезков до 50. И проверяем, является ли полученная картинка частью какой-нибудь из известных (x or y == y). Если нет, то сохраняем. Получилось еще 134 картинки. Среди них искомая CODEWORD: CARTESIAN. Так в последние часы контеста я замкнул "пятнашку" получивших максимум очков команд.
В следующий раз (Дмитрий, ведь он будет, этот следующий раз, да?) буду стараться попасть в десятку. :)
Re: Yakov. Микроотчет
Date: 2012-12-17 06:46 pm (UTC)Меня скорость взлета Yakov в таблице очень впечатлила тогда.
Следующий раз непременно будет! Но сколько-нибудь конкретных сроков обещать не стану сейчас.
выбранные инструменты впечатлили
Date: 2012-12-18 06:23 am (UTC)