<< Вернуться на главную

Охотник за мегабайтами

Сегодня 09.01.11 прошел очередной конкурс программистов, и прошел достаточно удачно :-). Атмосфера в ходе конкурса была дружелюбная ( но соревновательная и азартная)

Конкурс проходил под покровительством спонсоров ОАО-ИСС (что определило и тематику конкурса). Победителям и лауреатам были вручены денежные сертификаты на различные суммы. Участники показали себя с наилучшей стороны, молодцы!

Условия конкурса можно прочитать на страничке заочного этапа.

Страничка заочного этапа конкурса.

На очном этапе соискателей ждали сюрпризы, приятные и неприятные. Было предложено три задания:
1.rar
2.rar
3.rar
В этих файлах содержится новая DLL и картинка с уникальным фоном. Для работы нужно взять проект с заочного этапа (тот, который вам подходит по языку программирования), сбросить в него файлы "B_BYTE.DLL" и "FON.BMP". После этого нужно привести в соответствие количество антенн и спутников в соответствии с заданием. Ну а дальше все в ваших руках... Если что-то не понятно, то ниже будут приведены исходники с очного этапа. Там все уже как надо. :-)

Ну а теперь поподробнее о заданиях:
1) Это задание было самым сложным. 8 антенн и только 5 спутников. Мало того, спутники низколетящие а скорости антенн только 1-н градус в секунду. Все расчитано так, что скорости хватает только на большом расстоянии от спутника (для первых антенн на излете, а для последних на взлете). А антеннам посередине вообще ни на что скоростей не хватает (только на непродолжительное сопровождение). Надо-же как неудачно разложилось :-) Для победы в задании требовалось обеспечить взаимодействие антенн, и простор для воображения тут максимальный. Вот экран программы победителя в первом задании:


2) Второе задание можно считать самым понятным. Только одна антенна и 10 спутников. Выбирай самый информативный и качай, качай...
Второе задание смотрелось так:


3) Ну а третье задание полностью повторяло задание заочного этапа (только замеченные баги все исправлены). Так что тут без сюрпризов, но подумать было над чем.
Вот так все выглядело:


Борьба велась ожесточенно. Участники так разошлись, что на предложение сократить на 10 минут работу предложили увеличить время еще на час :-).


Вот сводная таблица результатов.

Фамилия имя 1 задание 2 задание 3 задание Итог: место
Климов Алексей 795246 340769 1272027 2408042 1 место (10-11кл)
Павленко Кирилл 834379 347906 1201754 2384039 2 место (10-11кл)
Печеницын Алексей 619008 351916 1319193 2290117 3 место (10-11кл)
Ахмадеев Александр 627882 340769 1206021 2174672 Лауреат (10-11кл)
Перепелица Семен 347992 342318 567849 1258159 Лауреат (10-11кл)
Кожанов Валерий 714345 364244 1319193 2397782 1 место (8-9кл)
Печеницын Иван 622065 201604 1206021 2029690 2 место (8-9кл)

Приглянитесь к результатам, Теперь понятно, почему у нас 2-е номинации (8-9 и 10-11)? Аааа я понял, это чтобы младшие случайно старших не затоптали :-)

Ну-с, приступим к более подробному анализу.

Вот с первого взгляда подозрительно, что у 2- человек на третьем задании совершенно одинаковый результат. Да еще и самый большой! Скурпулезный анализ исходников показывает, что и там и там применен простейший алгоритм (ну просто элементарный) Спрашивается угол, и выдается на целеуказание. И ВСЕ!!!! и этот простейший алгоритм оказался лучше чем самые навороченные! И исходники явно разные. Единственная хитрость, там выбраны постоянные номера антенн и спутников и они не по порядку. Ну а какие именно спутники были взяты для постоянного слежения явно просто были перепробованы разные комбинации (благо их не так много, а под руками мощный комп). Ну и взято самое оптимальное сочетание. Вот потому и получилось одинаково.

Ну вот что тут скажешь, МОЛОДЦЫ! Это еще раз говорит о том, что простой но отлаженный алгоритм часто оптимальней крутонавороченного. Хотя явно есть куда его улучшить. Так как информативность спутников меняется после каждого их появления, этот алгоритм можно было еще улучшить, меняя номера. А если еще просчитать что выгоднее, продолжать сопровождение низкоинформативного спутника и перейти к новому.... Так что результат мог быть еще выше. Но все это нужно еще отладить :-).

А вот для заданий 1 и 2 такой номер не прошел, там надо было по честному..

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

Исходники

1-е задание 2-е задание 3-е задание
1_1.rar 2_1.rar 3_1.rar
1_2.rar 2_2.rar 3_2.rar
1_3.rar 2_3.rar 3_3.rar

Картинки с очного этапа:


Дорогие участники! На самом деле вы все молодцы. Уровень программирования достаточно высок, провалов небыло и победители определились с незначительным приимуществом. Администрация сайта, СЮТ и ОАО ИСС желают вам успехов, и мы уверены, что ваши знания обязательно будут востребованы в дальнейшем.