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

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

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

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

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