Правила
Embrace the Challenge
Конкурсът
CodeIT е разделен на два типа състезателни части с общ финал. Квалификационната фаза се състои от шест задочни кръга - три
„СПРИНТ” и три
„МАРАТОН“, които се редуват в рамките на една учебна година. За всеки кръг се формира отделно класиране
на база сумата от точките на всеки участник, получени за всяка задача от конкретния кръг. При ненулев резултат, спрямо позицията в това класиране, се
присъждат
рангови точки - първенецът получава 100 точки, състезателите, намиращи се на следващите две позиции, получават с по 15 по-малко
от предходния, следващите трима с по 10 по-малко, следващите четирима с по 5, петима с по 2 и още петима с по 1 по-малко. Т.е. първите 20 места ще получат
съответно рангови точки 100, 85, 70, 60, 50, 40, 35, 30, 25, 20, 18, 16, 14, 12, 10, 9, 8, 7, 6, 5.
Всички останали състезатели с ненулев резултат получават по 1 точка.
Изготвят се две паралелни класирания. В
общото класиране се включват всички участници, взели участие в поне един кръг на текущия сезон
на конкурса. В
класирането за младежи се включват всички участници, които са 8 клас или по-малки. За всеки кръг за младежкото класиране
се присъждат отделни рангови точки на база резултатите в кръга. В спринтовите кръгове се дават специални задачи, които се вземат предвид само в младежкото
класиране.
МАРАТОН:
Този вид кръгове се състоят от една задача. Участниците имат право да предават решенията си през целия период на кръга, като при изготвяне на класиране
се оценява решението, избрано от участника като официално (по подразбиране това е последното предадено). Разрешените езици за предаване на решение са
C и C++. Участниците трябва да предоставят единствено сорс-кодовете си – файл с разширениe
.c или .cpp.
Информация за начина на оценяване на задачата ще бъде предоставена в условието ѝ.
СПРИНТ:
Този вид кръгове се състоят от 8 задачи, като 3 от тях са предназначени само за младежи и не се вземат предвид в общото класиране, а другите 5 са за общото класиране.
Участниците имат право да предават решенията си през целия период на кръга, като при изготвяне на класирането се оценява последното предадено решение за
всяка задача (за разлика от маратонските кръгове). Разрешените езици за предаване на решение са C и C++.
Участниците трябва да предоставят единствено сорс-кодовете си – файл с разширениe .c или .cpp.
Всеки участник получава точки за дадена задача единствено когато решението му премине успешно всички тестове към нея. Резултатът му е обратно пропорционален
на времето на изпращането на решението му спрямо началото на кръга, като минималната стойност е 50% от максималния брой точки. Максималният брой точки, които
може да донесе всяка задача за класирането в текущия кръг, са оповестени в условието.
Организаторите ще разглеждат обективно всички контестации по време или в рамките на три дни след края на
всеки състезателен кръг. Организаторите
си запазват правото да взимат еднолично решения за преразглеждането на точки след състезанието.
Участие във финален кръг
Финалният кръг на CodeIT ще се проведе присъствено.
- Във „Финалното класиране“ ще бъдат включени следните 12 състезатели:
- В допълнително „Младежко класиране“ ще бъдат включени ТОП 5 състезатели от рангово класиране
за младежи. Те ще имат възможност да решават същата задача.
Ще бъдат наградени участниците във „Финално класиране“ и в „Младежко класиране“.
Езикови спецификации
Всички решения се тестват на един и същи компютър.
- C (стандарт C17): gcc -O2 -std=c17 -Wall -DONLINE_JUDGE -o _sol <source_file>
- C++ (стандарт C++17): g++ -O2 -std=c++17 -Wall -DONLINE_JUDGE -o _sol <source_file>
Оценка на изпратените решения в задочните кръгове
- Схема на проверка:
- Журито подготвя набор от тестове (входни данни) и определя времевото ограничение и ограничението по памет за решенията на всяка задача.
- Ако при изпълнението на програмата на участник за даден тест се получи грешка по време на изпълнение на програмата (Runtime Error), надвиши
времевото ограничение или надвиши ограничението по памет, то тестът ще се счете за неуспешен и ще му бъдат присъдени 0 точки.
- Ако програмата завърши тест в определеното време и в условието на задачата не е указана друга схема за оценяване, то ще бъдат присъдени или всички
точки определени за теста (при верен резултат), или 0 точки (ако резултатът генериран от програмата е грешен - това включва грешно форматиран изходен
файл).
- Обратна връзка:
- По време на всеки кръг (освен ако изрично не е уточнено) изпратените решения се тестват от системата върху даден набор от примерни тестове
(които може да са публично известни) в реални условия, като потребителите получават детайлна информация за работата на предаденото решение. На базата
на получените резултати е възможно съставянето на временно класиране. Крайното класиране се определя от резултатите от финалните тестове, които се
изпълняват след края на всеки кръг от конкурса и се публикуват официално.
- Наказания:
- Програмата трябва да извежда единствено указаните в условието изходни данни в съответния изходен файл. Освен това форматът на изходните
данни трябва да съвпада с описания в условието на задачата. Не трябва да бъдат извеждани съобщения на екрана, принтера или други изходни устройства.
- Програмата трябва да чете данни единствено от описания в условието входен файл и от временните файлове, които тя има право да създаде. Тя не
трябва да очаква, че данните, които са записани във входния файл, ще бъдат подадени например на стандартния вход.
- Програмата не трябва да включва потребителски интерфейс. Тя не трябва да създава прозорци, бутони, статус барове и т.н. Освен това програмата
не трябва да изисква потребителска намеса – например да се натисне Enter.
- Употребата на генератор на случайни величини е позволена, но трябва да се вземат предвид съответните рискове, които тази употреба носи. Скоростта,
с която се генерират произволни стойности на Вашия компютър, може да се различава от тази на оценяващата машина. Бъдете запознати с документацията
на съответния източник на произволни стойности.
- Плагиатството е забранено. Използването на чужд код е възможно само ако той е публично достъпен, източникът е ясно обозначен и са спазени
всички лицензни права.
- При неспазване на някое от изброените условия резултатът на състезателя ще бъде намален по преценка на журито.
- Контестации:
- След публикуване резултатите на всяка задача, участниците имат право да подават контестации в срок от 3 дни през системата на конкурса.
- При нужда журито има право да удължи срока за контестации.
Право на участие в конкурса има всеки желаещ, който не е свързан пряко с вътрешната организация на конкурса
CodeIT. Предаването на решения и задаването на
въпроси по условието на задачата става чрез online системата след
регистрация.
Включвайки се в Конкурса, всеки участник приема настоящите правила.