След около 7 месеца, 5 онлайн кръга, много мегабайти предаден код, тестове, логове и един грандиозен, 24 часов, присъствен финал, можем да кажем, че сезон 2012/2013 завърши успешно и победителите в него са ясни. Те бяха наградени вчера, непосредствено след финала, а в тази публикация ще можете да прочетете подробности относно как финалът протече, както и самото класиране и линкове към предадените от състезателите решения.

Как протече финалът?

Както беше обявено, финалът беше планиран за два дни, като до края на първия ден състезателите трябваше да изпратят решенията си за алгоритмичната част, а за приложната имаха време до сутринта на следващия ден, когато трябваше да я представят пред журито на финала.

Борбата с алгоритмичната част

Задачата, както обикновено, беше с интересно описание и за да имат повече време състезателите за решаването ?, набързо синтезирахме основната информация в кратко представяне пред всички. За разлика от предходните кръгове, в които всеки алгоритъм се изпълняваше самостоятелно върху предварително генерирана ситуация, този път задачата касаеше директно противопоставяне на алгоритмите.Няколко часа след публикуването на задачта, отличавайки допънително финала от останалите кръгове, предоставихме на отборите системата, която проиграваше едно противопоставяне между два алгоритъма, наред с нейния код.

Освен възможността да тестват своите алгоритми директно върху системата, състезателите имаха и друга възможност – да търсят пролуки в тестващата система и да ги съобщават, или експлоатират – както и в истинския живот. Действително получихме няколко съобщения, за потенциално проблемни участъци от кода, като реагирахме с коригирането им и дадохме новата версия на състезателите. Един отбор дори се беше възползвал частично от един “бъг” – макар това никак да не помогна на резултатът на съответния алгоритъм.

В крайна сметка след доста разписване, премисляне, писане на код и тестване, всички отбори пратиха решения за алгоритмичната част – като този път, за радост на журито, всички бяха спазили формата на файловете, дори и не открихме проблеми при входно-изходните данни.

Приложения посред нощ

Както предполагахме, повечето състезатели се концентрираха върху алгоритъма през деня и оставиха приложната част за писане до сутринта на следващия ден. Беше дълга нощ. С наближаването на изгрева, упоритостта на участниците намаляваше, но все пак до последно останаха няколко отбора – което в последствие се отплати за повечето.

Хранителните запаси свършиха бързо и имаше притичващи до близките магазини за презареждане. За щастие, обаче, кафето беше достатъчно, въпреки олимпийските постижения от 10-20 консумирани бройки, за които някои участници разказаха.

Презентациите пред журито

Спали, недоспали, всички отбори, които се справиха с приложната част, се явиха на защита пред журито, което сформирахме. Имаше както добри, така и не толкова добри приложения, но беше видимо, че всички се бяха потрудили и всяко приложение имаше с какво да се гордее.

За няколко часа успяхме да изгледаме и препитаме всички, като в качеството си на жури се постарахме да дадем и съвети за подобрение на съответните приложения – разбира се отчитайки малкото време, което състезателите имаха.

Интересни впечатления от финала

Правейки равносметка, забелязахме някои интересни факти за участниците и шампионите, които тук ще разкажем.

Всички се усмихваха

Макар и не постоянно, макар и че бяха супер уморени, всички участници се усмихваха – надяваме се, че тези усмивки показваха желанието и удоволствието от участието на този тежък но интересен финал.

Шампионите в алгоритмичната част не успяха да влязат в топ 3

Най-успешният алгоритъм беше изготвен от отбор от двама участници, но явно времето не достигна, за да успее този отбор да изготви достатъчно успешна приложна част. Въпреки това поздравяваме отбора на Красимир Николов и Огнян Петков за най-добро представяне в алгоритмичната част на финалния кръг и убедителното предимство в точките спрямо останалите алгоритми!

Създателите на най-доброто приложение също не достигнаха топ 3

Почти същата ситуация, както при шампионите от алгоритмичната част – отбор с доста добре направена приложна част, изпълняваща почти всички изисквания от условието, с коректен error-handling и сравнително добър дизайн (с малки забележки за цветовото оформление) и ползваемост, също не успя да се пребори за челната тройка, като техният пропуск съответно беше в алгоритмичната част. Отборът започна работа върху приложението сравнително рано, което явно е отнело от времето им за разработка на алгоритъм. Въпреки това, Марио Стоилов и Ивайло Кирилов заслужават похвала за най-изпипаната приложна част на финалния кръг!

“Jack of all trades, master of none, Certainly better than a master of one”

В резултат от последните явления, шампионите в генералното класиране бяха отбори, които са направили “почти най-добрия алгоритъм” и “почти най-доброто приложение” – което може би е показателно, че притежаването на добри умения в много сфери надделява на притежаването на най-добрите умения, но само в една сфера. Тъй като мненията по този въпрос са много и с добри доводи, няма да стигаме до заключения и ще ги оставим за читателите.

Самостоятелен участник е в челната тройка

Не е прецедент за състезанието, но все пак е интересно че не малко самостоятелни участници стигнаха до финала, при това един от тях успя да завоюва второ място. Поздравяваме “човекът-отбор” и му пожелаваме да продължава в същия дух с успехите – а името му ще видите в класирането по-долу.

Определихме челната ++тройка

Типично при онлайн кръговете закръгляме крайните резултати, тъй като разлики по-малки от единица в рамките на 5 кръга не оказват влияние. За финалът обаче, решихме, че е най-добре да запишем резултатите в пълният им вид, или поне закръглени дотолкова, че увеличаването на цифрите след десетичната запетая да не оказва влияние върху класирането.

Така стигнахме до закръгляне до първата цифра след десетичната запетая, което не попречи отборите от второ до четвърто място да са изключително близки по резултати. Не искахме да нарушаваме концепцията за челната тройка, но в този случай направихме компромис и наградихме и четвъртия отбор, тъй като смятаме че техният успех също е значителен.

Финални резултати и шампиони за сезон 2012/2013

Време е да обявим крайните резултати и да поздравим шампионите за сезон 2012/2013. Не сме забравили и да качим всички материали от състезанието – предадени приложни части и алгоритми, логове от тестването на алгоритмичната част наред с тестващата система – можете да ги намерите на обичайното място, по-конкретно на този адрес: http://downloads.academy.telerik.com/svn/pc-magazine/Public/season-2012-2013/final-round/

Поздравяваме шампионите и всички участници и им пожелаваме още успехи както в програмирането, така и в живота!

Място Автор 1 Автор 2 Общо точки Точки алгоритъм Точки приложение
1 Антони Бойков Жеков Ралица Никифирова 14.2 7.3 6.9
2 Пирин Карабенчев 13.3 8.2 5.1
3 Александър Тодоров Надер Дабур 13.2 7.3 5.9
4 Лазар Емилов Георгиев Петър Иванов 13.1 9.1 4
5 Павел Сотиров 13 8.2 4.8
6 Огнян Петков Красимир Николов 12.4 10 2.4
7 Ангел Николов Стоянов Милен Играчев 10.9 6.4 4.5
8 Марио Стоилов Ивайло Кирилов 9.4 1.4 8
9 Деян Петров Йосифов 4.1 4.1
10 Слави Георгиев Иван Лазаров 3.2 3.2
11 Симеон Николов Никита Мошенский 2.7 2.7
12 Пламен Жеков 2.3 2.3
13 Димитър Лазаров 0.9 0.9