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 or the problem solver. 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.
- Programming problem
- A question that computer is able to solve. Usually the problem includes
variables. For example, for a given number
nfind its any nontrivial factor. The value
nis a variable in the problem.
- Problem instance (also: input instance, input data)
- The set of data which determines all variables from the computational problem
definition. For example number
10is an instance for
the prime numberproblem (i.e. for a given number
nis a prime number).
- Binary problem
- Any computational problem with binary (i.e.
false) answer. For example
the prime numberis a binary 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 in Problem description),
- test cases (see more below),
- master judge (see more below).
- The source code which is potentially the correct solution to the problem (see more in Submission flow).
- 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 in 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,
- test case judge a program that analyses the output generated by user's solution (usually compares user's output with correct output) (see more in Judges, Writing judges).
- Master judge
- The program which collects results from test cases to produce a 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:
time limit exceeded,
run time error,
compile error(see more Statuses).
- The programmer (developer).
- Problem setter
- User of the service with the permissions to create and manage problems.