BOCA Online Contest Administrator

Reference Manual for teams - version October/2011 (BOCA version 1.4.1)

Copyright (c) 2003-2010 Ulisses F. F. da Silva and Cassio P. de Campos.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license may be found in

BOCA is a software for controlling a competition in the scope of the ACM International Collegiate Programming Contest. It has been developed in PHP and the interaction between teams and the system is performed using a web browser. In the following it is described this interface and its main functions.

It is important that teams tested the system during the warmup session, before the official contest, so any issue can be addressed in time. The warmup has exactly this purpose. It is expected that teams submit correct and incorrect runs, as long as they do not try to perform malicious operations in the system. It is also expected that clarifications be submitted, and a small file to print.

It is assumed here that the team has already logged in using the web browser and the URL address provided to access the BOCA system. The URL varies from contest to contest, so you have to ask the staff of your site about it. The login page contains the fields username and password, which are provided by the staff of the contest. Usually the username follows the format teamX, where X is the team number, but that is not mandatory (again, check with the staff). If not speficied, the initial password is empty.

After the successful login, a page opens with the team identification in the upper-left corner, and the clock of the contest in the upper-right corner. During the contest, as the team gets YESes as balloons appear besides the team name. Just below this information, a vertical menu has the following options: Problems, Runs, Score, Clarifications, Tasks, Backups, Options e Logout.


In this tab, the team sees the problems of the contest, together with the book of problem descriptions (if available online). In in-loco contests, this tab is less important given that a printed version of the booklet is distributed to the teams. Still, the column named Basename provides to teams the name of the file that has to be used for each problem. This is the name that has to be followed by the extension (depending on the language) and also as the name of the class containing the public main procedure in Java. Usually this information is also available in the booklet. Nevertheless, here the team can check if their name is correct.


This tab represents the actual information about the team's submissions, as well as provides the interface to submit new runs. It is important for the team to select the correct problem, language, and to choose the correct file for the submission. Note that the file name must follow the specification in the booklet, and which shall also be available in the tab Problems. Hence,

  1. Use in the source-code the filename defined in the column Basename of the tab Problems. Take care with small typos and the proper extension according to the chosen language.
  2. Choose the correct language and problem. It is not uncommon to happen submissions with wrong filename, language or problem.
  3. Make sure your code reads the input from the standard input and writes the output to the standard output. Avoid writing anything to the standard error. Furthermore, make your program exit the code zero in the final return or exit(.) call. By default, this indicates that no error has happened during its execution.

In order to see the judgements of runs, the team must click on the tab Runs and watch the list of submitted runs. However, do not stop working while waiting for the answers. Even if the judges are in the backstage working hard to reply to all submissions, this might take some time. In the last part of the competition, the scoreboard is not updated, neither the runs are answered back (the number of minutes from the end when this happens depends on the contest; usually it is something around 15 minutes, but this is informed by the staff). For each run, there is a set of standard answers that exist in each contest (and they may vary depending on the contest). Still the common options are shown below:
YES Your code was properly compiled, run, and correctly generated the expected output for the problem.
NO: Wrong answer Some times known as Incorrect output. It indicates that the code compiled and ran, however it did not generated the expected output for the problem, given the input of the judges (which most certainly is different from yours and is not available to you).
NO: Time-limit Exceeded The code compiled properly but spent more than the maximum amount of time defined for the given problem. This time-limit is defined by the judges for each problem and is not disclosed to the teams.
NO: Runtime Error The code compiled properly but achieved an error during its run, given the input of the judges. Some examples of runtime error are: illegal memory access (seg. fault), illegal file access, excess of memory usage, etc.
NO: Compilation Error The code has not compiled properly in the judges' computers. Note that you are expected to have compiled in your own computer before submitting the code. So check the compilation options and versions in your computer, and if you do not have a problem compiling it locally, ask a member of the staff for help.
NO: presentation Error Also known as output format error, it means that your code compiled, ran, and generated the expected output apart from some minor presentation issue, such as upper/lower-cases, acents or punctuations (the definition of presentation error may vary in each contest and is defined by the judges who created the test set).
NO: If possible, contact staff This reply tells you to contact your local staff for help/asking about the issue, if at all possible.


This tab shows the scoreboard of the contest. If running as a multi-site competition, the scoreboard might also contain teams from other sites, which can be identified by the /X after the team name, where X is the site number of the corresponding team. Note that the scoreboard is not updated during the last part of the competition. This is indicated accordingly.


This tab can be used by the team to submit questions to the judges concerning the problems, their descriptions, or any other aspect of the contest. If the question is specific to a problem of the test set, the team must select the problem from the combo list. Otherwise, the option General is to be used. The text box is used to write the question. It is also available in this tab all the replies to questions that were formulated by the team, as well as questions formulated by other teams but that judges decided that the reply should be made available to all the teams. Some facts:

  1. Teams must make questions regarding the problems and test set using only this interface, and not directly to the staff or judges.
  2. It is the team's responsibility to check the tab about clarifications during the contest to check for new replies. Judges may also send general clarifications to teams, and they will appear in this tab.

BOCA allows judges to use a particular button named No response. If you receive this reply it means that the question may not be answered by the judges, for instance because it is against the rules to disclose such information, or because the judges understand that the information asked is already available in the booklet of problem descriptions.


This tab allows the team to send files for printing, as well as ask for help from a staff member (using the button S.O.S.. To print a file, just select it from the disk and click on Send. The help provided by the staff has to be only related to issues with the computers or other physical problem, while questions about the test set, problem descriptions, etc must be send to the judges using the tab Clarifications.


It is possible to send small files to BOCA in order to keep them safe in the server. This is particularly useful if some drastic issue happens with your computer. This tab provides a way for the teams to send and query back files that are stored in the server. Only very small files are allowed, so it is recommended that you backup only plain text files (source code, inputs, etc) and use a zip or tar.gz format to create a single file.


This tab shows the information of the team, such as Username, User full name , User description. It is possible for the team to update their password, although this is not necessary neither recommended. Instead it is recommended that the admin who created the users already specifies secret and safe password for all users.


Button to log out from the team interface.

About BOCA and this document

BOCA System and this document have been created by Cassio Polpo de Campos and can be found at An initial version of this document was made by Ulisses Furquim Freire da Silva.

Valid HTML 4.01!