Contest web service user manual

The contest web service is available from workstations at http://contest/.

During each Competition Round this service provides facilities to:

  • submit solutions,
  • submit test executions,
  • make backup copies of files and restore them,
  • print files,

After each Competition Round (when the grading results are checked by the teams) this service provides facilities to:

  • download the graded solutions,
  • download test cases,
  • browse evaluation results.

Logging into the service

In order to perform any of the above operations, you have to log into the web service by entering your login and a password at the authorization page. Login and password will be provided by the organizers. A new password will be assigned on each competition day.

After a successful login the main contest page will appear, showing time to end of the current contest, a list of possible operations, a list of your submissions and evaluation results when they are available.

You can log out at any time by clicking "Logout" from the menu on the left hand side.

Submitting a solution

Choose "Submit a solution" from the menu. Choose a task, select a file with a source code of your solution and click the Send button.

The programming language in which your solution is written is identified by the extension of the source file name. The extensions are:

  • .c and .C for C,
  • .cpp and .CPP for C++ and
  • .pas and .PAS for Pascal.

The solution will be compiled and run on the example test case. As soon as it is done, you will see the result on the list of your submissions. You may select the submission there to see more detailed information.

All your submissions are stored on the server and are available to download.

Number of submissions is limited to 30 submissions per task. The source code size must not exceed 100 kB.

Submitting a test execution

During the contest you can run your program on your input file in the same environment in which the solutions will be evaluated.

Choose "Test a program" from the menu. Choose a task, select a file with a source code of your program, select an input file and click the Send button. Execution time and memory limits will be the same as for the chosen task. The programming language is identified in the same way as when submitting a solution.

After the program is run, you will see the result on the list of your submissions. Select the test execution from the list to see detailed information, including your program's output.

All your submitted files are stored on the server and are available to download.

You can submit at most 30 test executions per task. The source code size of the program must not exceed 100 kB. The input file size is also limited to 100 kB. If you want to submit a bigger input file, you can compress it (using gzip) before submission. The size of a compressed file must still not exceed 100 kB and the size of a decompressed file is limited to 50 MB.

After the test execution is completed, you can see its results, i.e. the time measurement and the first 100kB of the standard output produced. If your program's output is bigger than 100 kB it will be truncated to that size.

Test cases

After publication of the results, you will be able to download the test cases along with correct answers. The link to them will be in the menu on the main page.

Backup copies

To make a backup copy of a file, choose "Backup a file" from the menu. Select a file and click the Send button. The file will be stored on the server.

To restore a stored file, choose "Restore a file" from the menu. You will see a list of all your backup copies. Click on a file to retrieve it. You can also choose to delete a stored file. It may be necessary since the number of files stored on the server is limited to 100 files per contestant.

Notice that all your submitted solutions and files for test runs are also stored on the server. They are not counted as backup copies. When you choose a submission from the list, links to those files will be shown.

The size of the sent file must not exceed 100 kB.

Printing a file

To print a file, choose "Print a file" from the menu. Select a text file and click the Send button. The file will be sent to the printer and the printout will be delivered to your workstation.

The size of the printout is limited to 10 pages. On each competition day the contestant can print at most 30 documents.

Evaluation results

After choosing a submission from the list on the main page, you will see its evaluation results. During the contest, only the results of compilation and execution on the example test case will be available. After the contest, the full evaluation report will be shown. The test cases on which your solution was evaluated will be available from the main menu.

Additionally, after the contest you will see your results on the main page. To see the full report from a competition day, click on the report name in the list of results.

Evaluation reports

If a solution does not compile, the report will contain the compiler's message. If the solution compiles successfully, the report will contain execution results for each test case. The report includes the following information about execution results on a single test case:

  • one of the results:
    OK
    the program terminated without any error within the time limit and gave the correct answer,
    Wrong answer
    the program terminated without any error within the time limit, but its answer was not correct,
    Time limit exceeded
    the program did not terminate within the time limit,
    Runtime error
    the program was terminated by a signal (e.g.. because of division by zero or invalid memory access), returned an exit code other than zero or tried to use too much memory.
  • program's execution time and the time limit,
  • the number of points the program scored and the maximum number of points for the test case.

Example report

Contestant:Jan Kowalski (pol99)
Date: 2005-04-19 16:07:59
Result: 60
Comment: IOI'2005, Day 1

Task: jou/Journey
Date: 2005-04-19 16:09:08
Result: 60/100
Files: solution

Test Result Time/Limit Points
 0   OK 0.02s/10.00s 0/0
 1   Time limit exceeded --/10.00s 0/10
 2   Runtime error 0.02s/10.00s 0/10
 3   Wrong answer1 0.01s/10.00s 0/10
 4   OK 0.02s/10.00s 10/10
 5   Wrong answer2 0.01s/10.00s 0/10
 6   OK 0.02s/10.00s 10/10
 7   OK 0.02s/10.00s 10/10
 8   OK 0.01s/10.00s 10/10
 9   OK 0.02s/10.00s 10/10
 10   OK 0.03s/10.00s 10/10

1 line 1: read '7465', expected '7464'
2 line 1: read '15540', expected '15539'

Summary of limits

number of submissions30per task
number of test executions30per task
size of a source code100kB
size of an input file submitted for a test execution100kB
size of a compressed input file after decompression50MB
size of a test execution output file100kB
size of an executable file10MB
compilation time limit30s
number of backup copies100per contestant
size of a backup copy100kB
size of a printout10pages
number of printouts30per day
execution time and memorydepending on a task

Note that the number of test runs performed on your local computer is not limited by the rules.

Note on stream input/output in C++

The iostream functions in the competition C++ compiler are very slow. We recomend using cstdio functions instead. Below you can find solutions to a sample task written in all competition languages.

Sample task and its solutions

Square

Task

Write a program which reads a number from the standard input x (-100 <= x <= 100) and writes it squared to the standard output.

Solution in C

#include <stdio.h>
int main() {
    int number;
    scanf("%d", &number);
    printf("%d\n", number * number);
    return 0;
}

Solution in C++

#include <cstdio>
using namespace std;
int main() {
    int number;
    scanf("%d", &number);
    printf("%d\n", number * number);
    return 0;
}

Solution in Pascal

var
    number : integer; 
begin
    Read(number);
    Writeln(number * number);
end.