DOMjudge supports the import and export of problems in a zip-bundle format.
The base of the format is Problem Format specification at problemformat.org. Please refer to that for the base specifications.
On top, DOMjudge defines a few extensions:
domjudge-problem.ini
(required): metadata file, see below.problem.{pdf,html,txt}
(optional): problem statements as
distributed to participants. The file extension determines any of three
supported formats. If multiple files matching this pattern are
available, any one of those will be used.The file domjudge-problem.ini
contains key-value pairs, one
pair per line, of the form key = value
. The =
can
optionally be surrounded by whitespace and the value may be quoted,
which allows it to contain newlines. The following keys are supported
(these correspond directly to the problem settings in the jury web
interface):
probid
- the problem short name (e.g. "A")name
- the problem displayed nameallow_submit
- allow submissions to this problem,
disabling this also makes the problem invisible to teams and publicallow_judge
- allow judging of this problemtimelimit
- time limit in seconds per test casespecial_run
- executable id of a special run scriptspecial_compare
- executable id of a special compare scriptpoints
- number of points for this problem (defaults to 1)color
- CSS color specification for this problemThe probid
key is required when importing a new problem from
the jury/problems
overview page, while it is ignored when
uploading into an existing problem. All other keys are optional. If
they are present, the respective value will be overwritten; if not
present, then the value will not be changed or a default chosen when
creating a new problem. Test data files are added to set of test
cases already present. Thus, one can easily add test cases to a
configured problem by uploading a zip file that contains only
testcase files. Any jury solutions present will be automatically
submitted when allow_submit
is 1
.