Изглежда този път source-ът не беше с даджаите на тази им „мисия“ и малцина герои успяха да се преборят напълно с предизвикателството – малцина, но за щастие ги имаше. Преди няколко дни завърши четвърти кръг на конкурса и вече резултатите са готови и можете да ги видите, по традиция, на края на тази публикация. А преди това ще поговорим набързо за събитията случили се в нашата никак неотдалечена галактика – по конкретно за оценяването и впечатленията от алгоритмичната и приложната част на задачата от четвърти кръг.

За оценяването и резултатите от алгоритмичната част

За този кръг е трудно да се каже дали алгоритмичните или приложните части затрудниха повече състезателите. Както винаги изготвихме тестове, които да пуснем в алгоритмите, като в случая това беше сравнително лесна задача – просто си избирахме достижими публични страници от сайтовете на Академията на Телерик (или видеа от YouTube канала – които бяха „по-трудните“ тестове).

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

При добре работещите алгоритми най-честите проблеми бяха „пропускане“ на страници от пътя (най-вероятно самото извеждане пропускаше), както и извеждане на неправилни хиперлинкове – или такива, които не съществуват на страницата, или още по-често релативни, които имат няколко наклонени черти повече. На няколко пъти попаднахме на избиране на хиперлинкове които връщат на същата страница (например href=“#“) – което не е голям проблем, но потенциално удължава пътя и намалява резултата.

Поради малката бройка алгоритми, оценяването проведохме на ръка (единствено времето за изпълнение засичахме автоматично), за да сме сигурни, че алгоритмите избираха коректни и съществуващи пътища – така сме и по-сигурни, че нямаме „бъгове“ в оценяването.

За оценяването и резултатите от приложната част

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

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

Резултати и награждаване

Ето и класирането – както обикновено, участниците са представени чрез потребителските им имена в студентската система на Телерик.

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

Очакваме с нетърпение участието ви в следващия кръг, задачата за който ще обявим след няколко дни!

Автор 1 Автор 2 Общо Алгоритъм Приложение
KOCTEHYPKATA   18 10 8
krasi.nikolov ognyan.petkov 6 6 0
aleks.todorov nader.dabour 3  0 3
pemmpty  lazo003 3  0 3
aslv1 0  0 0
JavaSTNT 0 0 0

Подробни резултати и допълнителни материали

Всички допълнителни материали от състезанието (решения на участниците, тестове, лог файлове на тестването и т.н.) могат да бъдат намерени на този адрес: http://downloads.academy.telerik.com/svn/pc-magazine/Public/.