CodeIT - Правила
-1
Крайно класиране след последния кръг
1 Encho Mishinev : 100
2 Pascal Pons : 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 точка.

МАРАТОН:

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

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

СПРИНТ:

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

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

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

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

Финалният кръг на CodeIT е присъствен в град София и до него се допускат 12 души. Това са:
  • първите четирима най-добре класирани участници от спринтовите кръгове, определени на базата на рангови точки спечелени през спринтовите кръгове
  • първите четирима най-добре класирани участници от маратонските кръгове, определени на базата на рангови точки спечелени през маратонските кръгове
  • останалите места за финала се попълват с най-добрите останали състезатели, определени на базата на рангови точки, спечелени през всички кръгове

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

  • Всички решения се тестват на един и същи компютър
  • Компютърът, на който се тестват решенията, има процесор: Intel® Xeon® Processor E7-4807 (18M Cache, 1.86 GHz, 4.80 GT/s Intel® QPI)
  • Проверката се извършва под Windows 7 32-bit, с инсталиран .NET Framework 4.5 и Java™ SE Runtime Environment (build 1.7.0_80-b15)
  • При работата си, програмите на участниците имат право да използват временни файлове в текущата директория с обща големина до 100 MB

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

  • C:
    • Компилатор: MinGW-gcc v4.7.1
    • Команден ред: gcc.exe -Wall -O3 -std=c11 -о <exe_file> <source_file>
    • Стандарт: c11
  • C++:
    • Компилатор: MinGW-gcc v4.7.1
    • Команден ред: g++.exe -Wall -O3 -std=c++11 -о <exe_file> <source_file>
    • Стандарт: c++11
  • Java:
    • Компилатор: javac v1.7.0_80
    • Команден ред: 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 системата след Регистрирай се.

Включвайки се в Конкурса, всеки участник приема настоящите правила.
up_guy
Партньори
http://www.math.bas.bg/
http://www.afbulgaria.org
http://www.fmi.uni-sofia.bg/
http://www.tu-sofia.bg/index.html
http://www.basscom.org/
http://www.gaminggear.bg/
http://www.microsoft.com/bg/bg/
http://www.bait.bg/