Правила за провеждане на състезания по програмиране в НБУ

1. ОРГАНИЗАЦИЯ И СЪСТАВ НА УЧАСТНИЦИТЕ
1.1. Състезание по програмиране (СП) се организира от НБУ, департамент Информатика.
1.2. Право на участие в СП има всеки редовен студент в НБУ.
1.3. Състезанието е отборно (всеки отбор се състои от трима състезатели) или индивидуално.

2. ТЕХНИЧЕСКО ОСИГУРЯВАНЕ
2.1. СП се провежда на еднакви за всички участници компютри, свързани в мрежа.
2.2. Всеки отбор разполага с един персонален компютър (или работна станция в мрежата).
2.3. Официални езици за програмиране на състезанието са Java и С/С++.
2.4. На всяко работно място има инсталирани еднакви версии на операционни ситеми и среди за програмиране на официалните езици за програмиране.
2.5. На състезателите се дават поне осем задачи. Задачите са самостоятелни (решаването на никоя задача не трябва да зависи от решаването на друга задача) и такива, че не изискват използването на специални софтуерни средства, различни от официалните среди за програмиране.
2.6. В текстовeте на задачите ясно се поставя условието на задачата и се привежда поне един пример. Описват се ясно форматите на входните и изходните данни. Входните данни се четат от стандартния вход, а резултатите да се извеждат на стандартния изход. Всички понятия, за които има съмнение, че не са общоизвестни, са бъдат пояснени в текста на задачата.
2.7. На всяко работно място има инсталирана и подготвена за работа състезателната система PC ^2 в официалната версия, която се използва на Международната студентска олимпиада по Програмиране.

3. ПРОВЕЖДАНЕ НА СЪСТЕЗАНИЕТО
3.1. Състезанието се провежда в един ден и е с продължителност 4 или 5 часа.
3.2. По време на състезанието, чрез PC^2, участниците могат да отправят до Журито въпроси по текстовете на задачите. Ако отговорът на въпроса може да се намери в текста на задачата, тогава Журито може да остави въпроса БЕЗ ОТГОВОР. Ако неяснотата в текста, за която е получен въпрос е сериозна, Журито подготвя обяснение, което се изпраща на всички участници чрез PC^2.
3.3. По време на състезанието участниците могат да използват всякакви ръкописни и печатни материали – книги, справочници, листинги и др. Използването на магнитни и оптически носители на данни, както и собствени компютри и мобилна свързочна техника е забранено .
3.4. Решението на всяка от задачите се състои от изходен текст на един от официалните езици за програмиране. Програмите трябва да са написани така, че да съответстват буквално на изискванията на текста по отношение на формата на входните и изходните данни. Не се допуска извеждането на информация на друго място освен стандартния изход под какъвто и да е предлог.
3.5. PC^2 компилира получения изходен текст на състезателите с посочения от тях компилатор. В случай, че на компютъра на участника има други среди за програмиране освен официалните, и състезателите са използвали за разработка на програмата такава среда, те трябва преди изпращането и да я приведат в съответствие с изискванията на официалния компилатор, с който искат да бъде компилирана програмата.
3.6. Задължение на състезателите е да съхраняват регулярно на твърдия диск създаваните от тях работни файлове. Загубата на програмен текст заради липса на съответно копие не се възмездява с допълнително време. В случай на неизправност на компютъра, участникът/отборът уведомява Журито и времето за работа на участника/отбора се удължава с времето за осигуряване на изправно работно място.
3.7. Временните резултати се обявяват в мрежата чрез PC^2. Половин час преди края на състезанието обявяването на временните резултати се прекратява.

4. ОЦЕНКА НА РЕШЕНИЯТА И КЛАСИРАНЕ
4.1. Решенията на задачите се проверяват с неизвестни на състезателите тестови данни, едни и същи за всички отбори, подготвени предварително от организаторите. За целия комплект от тестове е предвиден лимит от време, който не е известен на състезателите. За правилно се признава решение, което намира верен резултат за всички тестови примери в рамките на определения лимит от време.
4.2. В случай, че решението е правилно, членът на журито извършващ проверката уведомява за това състезателите чрез PC^2. В последните 30 минути на състезанието съобщения за правилни решения не се правят.
4.3. В случай, че решението не е правилно, членът на журито извършващ проверката, уведомява отбора чрез PC^2, като посочва една от следните възможни причини за непризнаване на решението:
• грешка при компилация (Compilation Error - CE);
• грешка при изпълнение (Run-Time еrror - RT);
• изтичане на определения лимит от време за тестване (Time Limit еxceeded - TL);
• неправилен формат на изхода (Presentation Error - PE);
• грешен резултат (Wrong Answer - WA).
При повече от един възможен отговор се изпраща този, който е по-напред в горния списък. Съобщенията за неправилни решения се изпращат до края на състезанието.
4.4. Класирането се извършва по броя на правилно решените задачи. При равен брой решени задачи, за всяка правилно решена задача се пресмята времето (в минути) от началото на състезанието до момента на предаването й. Сумират се получените времена и сумата се увеличава с по 20 минути за всяко предадено неправилно решение на решените задачи. Отборът с по-малка сума на така изчислените времена се класира на по-предна позиция.