thedeemon: (office)
[personal profile] thedeemon
Отведенные на контест 72 часа истекли, и таблица результатов на этот момент выглядела следующим образом:

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. Мои поздравления всем победителям и участникам! Особенно добрый коллега [livejournal.com profile] _darkus_ вызвался наградить победившую команду THIRTEEN материальными призами, которые они могут получить при личной встрече в Москве или по почте (доставка за счет получателя). Подробности у него в посте.

Ссылки на кое-какие отчеты о соревновании есть в комментариях к посту с условием. Пополнения приветствуются!

Я очень рад, что все получилось, т.к. боялся, что спецификации могут быть слишком недоспецифицированными или непонятными, но полтора десятка команд/участников, набравших 100% - это очень хорошо. Для меня было неожиданностью, что в ВМ, реализующейся в 15 строк, народ сумеет наделать столько случайных ошибок (у кого не так NOT работал, у кого вместо OR'a XOR был), но даже с ошибками их ВМ будет работать достаточно хорошо, чтобы пройти дальше. Про устройство конкурса, как это все было сделано и как работало, скоро напишу отдельно.

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

Yakov. Микроотчет

Date: 2012-12-17 06:19 pm (UTC)
From: [identity profile] bakhmatov.livejournal.com
Дмитрию - огромное спасибо за задачу. Соперникам - огромное спасибо за соревнование.

Про контест вспомнил поздно вечером в пятницу. Решил глянуть одним глазком на задачу. В итоге через 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)
From: [identity profile] thedeemon.livejournal.com
Замечательный отчет, спасибо!
Меня скорость взлета Yakov в таблице очень впечатлила тогда.

Следующий раз непременно будет! Но сколько-нибудь конкретных сроков обещать не стану сейчас.

Profile

thedeemon: (Default)
Dmitry Popov

December 2025

S M T W T F S
 12 3456
789101112 13
14151617181920
21222324252627
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 24th, 2025 01:55 pm
Powered by Dreamwidth Studios