final
Крайно класиране след последния кръг
1. 100
2. 85
3. 70
Виж пълно класиране

Правила

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++ и Java. Участниците трябва да предоставят единствено сорс-кодовете си – файл с разширениe .c, .cpp или .java.

Информация за начина на оценяване на задачата ще бъде предоставена в условието й.

СПРИНТ:

Този вид кръгове се състоят от нефиксиран брой задачи, като част от задачите са предназначени само за младежи и не се вземат предвид в общото класиране. Участниците имат право да предават решенията си през целия период на кръга като при изготвяне на класиране се оценява последното предадено решение за всяка задача (за разлика от маратонските кръгове). Разрешените езици за предаване на решение са C, C++ и Java. Участниците трябва да предоставят единствено сорс-кодовете си – файл с разширениe .c, .cpp или .java.

Всеки участник получава точки за дадена задача единствено когато решението му премине успешно всички тестове към нея. Резултатът му е обратно пропорционален на времето на изпращането на решението му спрямо началото на кръга като минимална стойност е 30% от максималния брой точки. Максималният брой точки, които може да донесе всяка задача за класирането в текущия кръг, са оповестени в условието.


Организаторите ще разглеждат обективно всички контестации по време или в рамките на три дни след края на всеки състезателен кръг. Организаторите си запазват правото да взимат еднолично решения за преразглеждането на точки след състезанието.

Участие във финален кръг

    Финалният кръг на 21. сезон на CodeIT ще се проведе onlinе.
  • Във „Финалното класиране“ ще бъдат включени следните 12 състезатели:
  • В допълнително „Младежко класиране“ ще бъдат включени ТОП 5 състезатели от рангово класиране за младежи. Те ще имат възможност да решават същата задача.
  • За първи път финалната задача ще бъде достъпна за всеки, който има желание да се включи в online финала на състезанието. Резултатите на тези участници ще бъдат обявени в допълнително независимо класиране - “Класиране за фенове“.
Ще бъдат наградени участниците в „Финално класиране“ и в „Младежко класиране“.

Особености по тестването

  • Всички решения се тестват на един и същи компютър
  • Компютърът, на който се тестват решенията, има процесор AMD Ryzen 2700x
  • Проверката се извършва под Windows 10 64-bit

Езикови спецификации

  • C:
    • Компилатор: MinGW-gcc v8.1.0
    • Команден ред: gcc.exe -Wall -O2 -std=c++17 -о -Wl,--stack=<min(67108864, ML за текущата задача)> -DONLINE_JUDGE <exe_file> <source_file>
    • Стандарт: c17
  • C++:
    • Компилатор: MinGW-gcc v8.1.0
    • Команден ред: g++.exe -Wall -O2 -std=c++17 -о -Wl,--stack=<min(67108864, ML за текущата задача)> -DONLINE_JUDGE <exe_file> <source_file>
    • Стандарт: c++17
  • Java:
    • Компилатор: javac v1.8.0_241
    • Команден ред: javac -d <output_dir> <source_file> ; jar cfe <jar_file> _sol _sol.class
    • Команда за изпълнение: java -Xmx<memory_limt> -jar <jar_file>
    • Особености: Главният ви клас трябва да се казва "_sol". Не можете да използвате static подкласове.

Оценка на изпратените решения в задочните кръгове

  • Схема на проверка:
    • Журито подготвя набор от тестове (входни данни) и определя времевото ограничение и ограничението по памет за решенията на всяка задача.
    • Ако при изпълнението на програмата на участник за даден тест се получи грешка по време на изпълнение на програмата (Run-time Error), надвиши времевото ограничение или надвиши ограничението по памет, то тестът ще се счете за неуспешен и ще му бъдат присъдени 0 точки.
    • Ако програмата завърши тест в определеното време и в условието на задачата не е указана друга схема за оценяване, то ще бъдат присъдени или всички точки определени за теста (при верен резултат) или 0 точки (ако резултатът генериран от програмата е грешен - това включва грешно форматиран изходен файл).
  • Обратна връзка:
    • По време на всеки кръг (освен ако изрично не е уточнено) изпратените решения се тестват от системата върху даден набор от примерни тестове (които може да са публично известни) в реални условия, като потребителите получават детайлна информация за работата на предаденото решение. На базата на получените резултати е възможно съставянето на временно класиране. Крайното класиране се определя от резултатите от финалните тестове, които се изпълняват след края на всеки кръг от конкурса и се публикуват официално.
  • Наказания:
    • Програмата трябва да извежда единствено указаните в условието изходни данни в съответния изходен файл. Освен това форматът на изходните данни трябва да съвпада с описания в условието на задачата. Не трябва да бъдат извеждани съобщения на екрана, принтера или други изходни устройства.
    • Програмата трябва да чете данни единствено от описания в условието входен файл и от временните файлове, които тя има право да създаде. Тя не трябва да очаква, че данните, които са записани във входния файл, ще бъдат подадени например на стандартния вход.
    • Програмата не трябва да включва потребителски интерфейс. Тя не трябва да създава прозорци, бутони, статус барове и т.н. Освен това програмата не трябва да изисква потребителска намеса – например да се натисне Enter.
    • Програмата трябва да предоставя еднозначно детерминиран изход, зависещ единствено от входа, който получава (например използване на процесорно време за инициализиране на генератор за случайни величини би нарушило това правило).
    • Плагиатството е забранено. Използването на чужд код е възможно само ако той е публично достъпен, източникът е ясно обозначен и са спазени всички лицензни права.
    • При неспазване на някое от изброените условия, резултатът на състезателя ще бъде намален по преценка на журито.
  • Контестации:
    • След публикуване резултатите на всяка задача, участниците имат право да подават контестации в срок от 3 дни през системата на конкурса.
    • При нужда, журито има право да удължи срока за контестации.
Право на участие в конкурса има всеки желаещ, който не е свързан пряко с вътрешната организация на конкурса CodeIT. Предаването на решения и задаването на въпроси по условието на задачата става чрез online системата след Регистрирай се.

Включвайки се в Конкурса, всеки участник приема настоящите правила.
Партньори
https://www.president.bg/