РЕГЛАМЕНТ за Републиканската студентска олимпиада по програмиране (Във вида от XX-тата РСОП, София 2008.) 1. ЦЕЛИ И ХАРАКТЕР НА ОЛИМПИАДАТА 1.1. Цел на Републиканската студентска олимпиада по Програмиране ( РСОП ) е да осигури възможност на най-добрите студенти от университети, работещи на територията на Република България и поддържащи програми по информатика да контактуват помежду си и в състезателни условия да проверят качеството на подготовката и възможностите си да се справят с не прости програмистки задачи. 1.2. РСОП е независимо състезание, организирано с добрата воля на университетите участници, като правилата за провеждането му се променят и утвърждават единствено от участващите него. 1.3. Доколкото съществува международен образец, доколкото далечна цел на състезанието е да бъде етап от подготовката за участие в него и доколкото позволяват възможностите на участниците, РСОП се провежда по правила, максимално близки до тези на Международната студентска олимпиада по Програмиране на АСМ (http://icpc.baylor.edu). 1.4. Правилата на РСОП се състоят от две отделни, но еднакво значими части: 1.4.1. РЕГЛАМЕНТ на Олимпиадата - относително постоянна съвкупност от правила, целяща да осигури стабилност и предсказуемост на общите принципи на състезанието и да бъде база за дълготрайна подготовка на потенциалните участници. 1.4.2. УСЛОВИЯ на Олимпиадата - относително променлива съвкупност от правила, целяща да отрази конкретните възможности на университета, който организира състезанието и конкретната ситуация към деня на състезанието. Този документ съдържа цялата информация, необходима на участниците бързо и без проблеми да усвоят работното място - конфигурация, процедури по стартиране, имена на устройства и каталози и т.н., както и всяка друга информация по условията предоставени от Домакина (по смисъла на член 2.1) и организацията на състезанието. 1.5. Условията на Олимпиадата се оповестяват на задължителна Техническа конференция, която се провежда в деня преди състезанието, като печатен екземпляр от условията се предоставя на всеки ръководител и състезател. 1.6. По време на Техническата конференция се формира и структурира журито на Олимпиадата. Журито е съставено от ръководителите на отборите и се председателства от представител на Домакина. Председателят на журито ръководи заседанията и няма никакви специални права. 2. ВРЕМЕ И МЯСТО НА ПРОВЕЖДАНЕ НА ОЛИМПИАДАТА 2.1. РСОП се провежда един път годишно и се организира от университет, работещ на територията на Република България и наричан за кратко Домакин на Олимпиадата. 2.2. Домакинът на всяка следваща Олимпиада се определя в края на предишната доброволно и по възможност на ротационен принцип. 2.3. Домакинът избира дата на Олимпиадата (около средата на месец май) и съобщава тази дата на интересуващите се най-малко три месеца предварително. 2.4. В случай, че Домакинът е в невъзможност да осигури провеждането на Олимпиадата, той съобщава това на интересуващите се най-късно до началото на летния семестър на съответната година и става инициатор за намиране на нов Домакин. В случай, че се намери нов Домакин, всички срокове се променят от него в зависимост от закъснението. В случай, че не се намери желаещ, състезанието за текущата година се анулира, но настоящият Домакин продължава опитите за осигуряване домакин за следващата година. 2.5. В случай, че Домакинът е в невъзможност да проведе Олимпиадата на предварително обявената дата, той съобщава на интересуващите се нова дата, най-малко два месеца предварително. 2.6. Домакинът избира Секретар на Олимпиадата, който да координира всички дейности по подготовката на турнира и съобщава името и адреса му за връзка на интересуващите се заедно с датата за провеждане. 3. СЪСТАВ НА УЧАСТНИЦИТЕ В ОЛИМПИАДАТА 3.1. РСОП е отборно състезание. Всеки участващ университет се представя от един отбор в състав: ръководител и трима състезатели. 3.2. При възможност от страна на домакина се допуска участието на повече от един отбор от един университет. В този случай в официалното класиране участва най-добре представилият се отбор насъответния Университет. Домакинът е в правото си да кани за участие, извън официалното класиране, и отбори от университети извън територията на Република България. 3.3. Ръководител на отбора е преподавател или друго лице, привлечено за целта, което се удостоверява с официален документ на учебното заведение (университет или факултет). 3.4. Състезатели могат да бъдат само редовни студенти на съответния университет (в бакалавърски или магистърски програми), които не са завършили семестриално към датата на провеждане на турнира. 3.5. Редовността на състезателите се гарантира от ръководителя на отбора, който лично попълва имената им в Тимов лист и подписва този лист 3.6. Един от състезателите е Капитан на отбора и това се указва изрично в тимовия лист 4.ТЕХНИЧЕСКО ОСИГУРЯВАНЕ НА ОЛИМПИАДАТА 4.1. РСОП се провежда на еднакви за всички участници компютри, свързани в мрежа. Минималната конфигурация трябва да включва дисково пространство (локално или в мрежата) достатъчно за инсталиране на необходимия системен софтуер и работните файлове на състезателя. 4.2. Всеки отбор разполага с един персонален компютър (или работна станция в мрежата). 4.3. Официални езици за програмиране на състезанието са Java, Pascal и С/С++. 4.4. На всяко работно място Домакинът инсталира еднакви версии на среди за програмиране на официалните езици за програмиране. 4.5. За отпечатване на текстовете на програмите Домакинът осигурява поне един мрежов принтер. 4.6. Домакинът подготвя предварително поне осем задачи. Задачите трябва да са самостоятелни (решаването на никоя задача не трябва да зависи от решаването на друга задача) и такива, че не изискват използването на специални софтуерни средства, различни от официалните среди за програмиране. 4.7. В текстовeте на задачите ясно се поставя условието на задачата и се привежда поне един пример. Описват се ясно форматите на входните и изходните данни. Входните данни трябва да се четат от стандартния вход, а резултатите да се извеждат на стандартния изход. Всички понятия, за които има съмнение, че не са общоизвестни, трябва да бъдат пояснени в текста на задачата. 4.8. Домакинът инсталира и подготвя за работа състезателната система PC ^2 в официалната версия, която се използва на Международната студентска олимпиада по Програмиране. Ръководството за работа със системата се предоставя в печатан вид на всеки участващ отбор по време на Техническата конференция. 5. ПРОВЕЖДАНЕ НА ОЛИМПИАДАТА 5.1. Състезанието се провежда в един ден и е с продължителност 5 часа. 5.2. По време на състезанието, чрез PC^2, участниците могат да отправят до Журито въпроси по текстовете на задачите. Ако отговорът на въпроса може да се намери в текста на задачата, тогава Журито може да остави въпроса БЕЗ ОТГОВОР. Ако неяснотата в текста, за която е получен въпрос е сериозна, Журито подготвя обяснение, което се изпраща на всички участници чрез PC^2. 5.3. По време на състезанието участниците могат да използват всякакви ръкописни и печатни материали – книги, справочници, листинги и др. Използването на магнитни и оптически носители на данни, както и собствени компютри и мобилна свързочна техника е забранено . 5.4. Решението на всяка от задачите се състои от изходен текст на един от официалните езици за програмиране. Програмите трябва да са написани така, че да съответстват буквално на изискванията на текста по отношение на формата на входните и изходните данни. Не се допуска извеждането на информация на друго място освен стандартния изход под какъвто и да е предлог. 5.5. PC^2 компилира получения изходен текст на състезателите с посочения от тях компилатор. В случай, че Домакинът е предоставил и други среди за програмиране, освен официалните, и състезателите са използвали за разработка на програмата такава среда, те трябва преди изпращането и да я приведат в съответствие с изискванията на официалния компилатор, с който искат да бъде компилирана програмата. 5.6. Задължение на състезателите е да съхраняват регулярно на твърдия диск създаваните от тях работни файлове. Загубата на програмен текст заради липса на съответно копие не се възмездява с допълнително време. В случай на неизправност на компютъра/работната станция, Капитанът на отбора уведомява Журито и времето за работа на отбора се удължава с времето за осигуряване на изправно работно място. 5.7. Временните резултати се обявяват в мрежата чрез PC^2. Половин час преди края на състезанието обявяването на временните резултати се прекратява. 6. ОЦЕНКА НА РЕШЕНИЯТА И КЛАСИРАНЕ 6.1. Решенията на задачите се проверяват с неизвестни на състезателите тестови данни, едни и същи за всички отбори, подготвени предварително от Научния комитет. За целия комплект от тестове е предвиден лимит от време, който не е известен на състезателите. За правилно се признава решение, което намира верен резултат за всички тестови примери в рамките на определения лимит от време. 6.2. В случай, че решението е правилно, членът на журито извършващ проверката уведомява за това състезателите чрез PC^2. В последните 30 минути на състезанието съобщения за правилни решения не се правят. 6.3. В случай, че решението не е правилно, членът на журито извършващ проверката уведомява отбора чрез PC^2, като посочва една от следните възможни причини за непризнаване на решението: · грешка при компилация (Compilation Error - CE); · грешка при изпълнение (Run-Time Error - RT); · изтичане на определения лимит от време за тестване (Time Limit Exceeded - TL); · неправилен формат на изхода (Presentation Error - PE) ; · грешен резултат (Wrong Answer - WA). При повече от един възможен отговор се изпраща този, който е по-напред в горния списък. Съобщенията за неправилни решения се изпращат до края на състезанието. 6.4. Класирането се извършва по броя на правилно решените задачи. При равен брой решени задачи, за всяка правилно решена задача се пресмята времето (в минути) от началото на състезанието до момента на предаването й. Сумират се получените времена и сумата се увеличава с по 20 минути за всяко предадено неправилно решение. Отборът с по-малка сума на така изчислените времена се класира на по-предна позиция. 6.5 . Домакинът осигурява на всички участници Сертификат за участие, а на класираните на първите места в официалното класиране и Диплом за класиране. 7. ОРГАНИЗАЦИЯ И ФИНАНСИРАНЕ НА ОЛИМПИАДАТА 7.1. Домакинът на Олимпиадата осигурява настаняването и храната на участниците на цени в рамките на командировъчните, регламентирани от нормативни документи, като своевременно уведомява потенциалните участници за размера на тези цени. 7.2. Разноските по пътуването, настаняването и храната на участниците са за сметка на учебните заведения, които представят. 7.3. Домакинът и участващите университети се поощряват да сключват Договори за спонсориране, както на своето участие така и за осигуряването на турнира, като поемат ангажименти за реклама на спонсора по време на състезанието.