Problem setter’s handbook


We focus on the essence of functionality namely the idea of processing source codes submitted into the system. As the user of one of our products you will be the creator of new programming problems.

Let us introduce the convention of naming - the person who creates the problem is the problem setter or the author and the person who use the service and solves the problem is just the user. All presented information are independent of the type of our service thus we just call it service. Also note that the service is mostly oriented to deal with console applications with standard input / output communication.

We provide simple definitions in dictionary, get familiar with them to avoid future problems with understanding.

General

(Computational) problem
A question that computer is able to solve. Usually the problem includes variables. For example, for a given number n find its any nontrivial factor. The value n is a variable in the problem.

Problem instance (input instance)
The set of data which determines all variables from the computational problem definition. For example number 10 is an instance for the prime number problem (i.e. for a given number n determine if n is a prime number).

Binary problem Any computational problem with binary (i.e. true or false) answer. For example the prime number is a binary problem.

Service

Problem
The challenge task for service's users which is the basic element of the service and it contains:

  • description text explanation of the problem nature along with input / output specification (see more Problem description)
  • test cases (see more below)
  • master judge (see more below)

Submission
The source code which is potentially the correct solution to the problem.

Test case
The set of data (usually pair of input file and correct output file) used for verification of the user's submission (see more Test case). It serves as a certificate of the correctness and also contains:

  • time limit the maximum time of the user's solution execution with the data from input file
  • tast case judge a program that analyses the output generated by user's solution (usually compares user's output with correct output) (see more Judges, Writing judges)

Master judge
The program which gathers results from test cases to produce final result of the submission (see more Master judges, Writing master judges).

Submission status
Short information about the user's submission execution. It can be one of the following: accepted, wrong answer, time limit exceeded, run time error, compile error (see more Statuses).

User
The programmer (developer).

Problem setter
User of the service with the permissions to create and manage problems.