Embrace the Challenge

CodeIT is divided into two competition phases – an online qualification phase and an onsite final phase. The qualification phase consists of six rounds - three "SPRINT" and three "MARATHON" , rounds, which swap for six months. There is a separate ranking for each round which depends only on the points received by the competitors on the task given in that particular round. Every contestant with a non-zero result in each round will be awarded with rank points - the champion receives 100 points, the contestants in the next two positions get 15 points less than the one before, the next three - 10 points less, next four - five points, next five - two and the five after that - one point less. In other words, the first 20 places receive: 100 points, 85, 70, 60, 50, 40, 35, 30, 25, 20, 18, 16, 14, 12, 10, 9, 8, 7, 6, 5. All other competitors with non-zero result will receive 1 point.

There are two paralel rankings. General and Junior. General ranking includes all participants and the Junior includes only participants who are under the ge of 14. For each round there are ranking points which are given only to the junior competitors. They are used for the Junior standings. In the sprint rounds there are special tasks which take place only in the junior ranking.


In the MARATHON rounds there is a single task. The participants can submit their solutions throughout the round, which lasts for at least two weeks. They can also select the submission which will be saved for final testing (note that only one submission will be saved per contestant and by default this is the last submitted solution). The allowed programming languages are C, C++ and Java. The participants must upload only their source codes - files with extensions either .c, .cpp or .java.
Detailed information on the scoring for a particular task will be provided in its description.


In the SPRINT rounds the amount of tasks is not fixed. Also there are additional tasck especialy for the junior competitors. The competition lasts for a few hours (usually about 3), in which the participants can submit their solutions. In contrast to the MARATHON type rounds, here the solution saved for final testing will always be your last submission for that particular problem. The allowed programming languages are C, C++ and Java. The participants must upload only their source codes - files with extensions either .c, .cpp or .java.

Each contestant will get points for a given task only when their solution passes all of the tests prepared for the task. The score for a submission is inversely proportional to the time, in which it is sent, measured from the start of the round. The minimum value for a submission is 30% of the maximum number of points. The maximum number of points for each task will be specified in its description.

The organizers will consider objectively all appeals during or within three days after the end of each round. The organizers reserve their right to make decisions about revising points after the contest.

Testing details

  • All solutions are tested on the same computer.
  • The machine, on which the solutions are tested, has the following CPU: Intel® Xeon® Processor E7-4807 (18M Cache, 1.86 GHz, 4.80 GT/s Intel® QPI)
  • Grading is done on Windows 7 32-bit, with installed .NET Framework 4.5 и Java™ SE Runtime Environment (build 1.7.0_80-b15)
  • The participants are allowed to use temporary files made in the current directory with combined size of up to 100 MB

Language specifications

  • C:
    • Compiler: MinGW-gcc v4.7.1
    • Command line: gcc.exe -Wall -O3 -std=c++11 -о -Wl,--stack=<min(67108864, ML for each task)> -DONLINE_JUDGE <exe_file> <source_file>
    • Standard: c11
  • C++:
    • Compiler: MinGW-gcc v4.7.1
    • Command line: g++.exe -Wall -O3 -std=c++11 -о -Wl,--stack=<min(67108864, ML for each task)> -DONLINE_JUDGE <exe_file> <source_file>
    • Standard: c++11
  • Java:
    • Compiler: javac v1.7.0_80
    • Command line: javac -d <output_dir> <source_file> ; jar cfe <jar_file> _sol _sol.class
    • Execution command: java -Xmx<memory_limt> -jar <jar_file>
    • Remark: The name of your main class must be "_sol". Do not use static inner classes.


The final phase of CodeIT consists of a single onsite round, held in Sofia. Only 12 people qualify for that round. Particularly:
  • the four contestants, who have earned the most rank points in SPRINT rounds,
  • the four contestants, who have earned the most rank points in MARATHON rounds,
  • the remaining places in the finale will be taken by the remaining participants with the most points earned in all rounds.
The top 5 contestants in the final standings for juniors will be invited to participate in the final round of the tournament, to attend the lecture by the guest IT guru and the prize ceremony. They will have the opportunity to solve the same task and to be ranked separately according to their score.

Up to 4 international contestants will be invited for the final phase, according to the rules described above.


  • Testing:
    • The jury prepares a set of final tests and sets the time limit and memory limit on each task.
    • If the contestant's program causes an error during execution (Run-time Error) or exceeds the time limit or memory limit, they will receive 0 points for the corresponding test.
    • If the program terminates in the time limit and if the problem statement is not specified for any other grading formula, the participant will be awarded either all points assigned for the test (for correct answer) or 0 points (if the result generated by the program is wrong - this includes a wrong formatted output file).
  • Feedback:
    • During each round (unless specified otherwise) the submitted solutions will be graded on the system with a set of sample test cases (which may be publicly known) in the same conditions as the final testing. The users will get detailed information about the execution of their submitted solution. There may be formed a preliminary ranking based on the results received by every participant on the sample tests. The final ranking is determined by the results of the contestants' official solutions on the final tests. The testing will be performed once the round has finished. The set of final test cases will be officially published.
  • Penalties:
    • The program should display only the specified output in the specified output file. Furthermore, the format of the output data must match the output described in the problem statement. It must not display anything on the screen, printer or any other output device.
    • The program should read data only from the input files described in the task statement or from the temporary files that it has created. It should not expect that the data stored in the input file will be provided on the standard input.
    • The program should not include user interface. It should not create windows, buttons, status bars, etc. Furthermore, the program must not require user interaction - for example, pressing Enter.
    • The program should provide unambiguous and deterministic output, depending solely on the input it has received (for example, using CPU time as a seed for a random number generator would violate this rule). This statement does not imply that random number generator should not be used at all.
    • Plagiarism is prohibited. Using other people's code is only possible if it is publicly available, the source is stated explicitly and it meets with all license rights.
    • Failure on any of the above conditions, will result in reduction of the contestant's result at the jury's discretion.
  • Appeals:
    • After the results of each task are published, the participants can make appeals within three days by using the contest system.
    • If necessary, the jury has the right to extend the period of appeals.
Right to participate in the contest is reserved for everyone who is not directly involved in the organization of the competition CodeIT. You will be able to submit solutions and ask questions related to the tasks in the ongoing round by the online contest system after you Register.

By entering the contest, every participant accepts these rules.