There exist 5 different types of lines. They are defined as follows:
These lines are mandatory and start with the two following characters: lower case s followed by a space (ASCII code 32). These two characters are followed by one of the following answers:
It is of utmost importance to respect the exact spelling of these answers. Any mistake in the writing of these lines will cause the answer to be disregarded. Solvers are not required to provide any specific exit code corresponding to their answer.
It is important to note that UNSUPPORTED is used when the solver recognises a constraint that is not implemented.
See Subsections 7.2 and 7.3 about their use.
These lines are mandatory and start with the two following characters: lower case v followed by a space (ASCII code 32) and followed by a solution of the problem.
Here, a solution is a sequence of numbers (only), which are separated
by one or more space symbols. The
number in the solution
corresponds to the ``assignment'' to the
variable of the
problem in the original problem specification in
standard input format. (Note that this may have consequences
for solvers that introduce auxiliary variables, rename
variables, or change their order.)
These lines are optional and start with the two following characters: lower case d followed by a space (ASCII code 32). Then, a keyword followed by a value must be given on this line. See section 7.4 for details about the diagnostics.
Such lines are optional and start with the two following characters: lower case c followed by a space (ASCII code 32). These lines are optional and may appear anywhere in the solver output. They contain any information that authors want to output. They are recorded by the evaluation environment for later viewing but are otherwise ignored. At most one megabyte of solver output will be recorded. So, if a solver is very verbose, some comments may be lost.
Submitters are advised to avoid outputting comment lines which may be useful in an interactive environment but otherwise useless in a batch environment. For example, outputting comment lines with the number of constraints read so far only increases the size of the logs with no benefit.
If a solver is really too verbose, the organisers will ask the submitter to remove some comment lines.
These lines start with the two following characters: lower case o followed by a space (ASCII code 32). These two characters are followed by one integer.
See Subsection 7.3 about its use.
Important:
Any line must be terminated by a Line Feed character: the usual Unix line terminator '
n' (ASCII code 10).
A 'v ' line which does not end with that terminator will be ignored because it will be
considered that the solver was interrupted before it could
output a complete solution.
Also, it is important that you don't forget to flush the output as soon as you have printed a
's ' line or a 'v ' line.
Marc van Dongen 2009-03-10