This article describes the deliverables (files) needed to define a contest problem.
Problem Author deliverables
Each problem author needs to create the following:
- a directory "problem short name" to hold the problem.yaml and other data files.
- a problem.yaml
- judge input and answer files in the appropriate directories (see Data File Locations section for details)
# Problem configuration source: ICPC Mid-Atlantic Regional Contest author: John von Judge rights_owner: ICPC name: Sumit Sample Problem
The source, author, and rights_owner are optional.
name: is followed by the title of the problem. The name of the problem can also be found in the problem.tex file.
Data File Locations
Each problem author needs to create a problem.yaml file and the judge's data and answer files.
Below is an example of where pc2 expects data files to be located. This example uses the problem short name 'sumit'.
The input data files and expected output files (answer files) are created in the data/secret directory.
Example file locations are:
sumit/problem.yaml sumit/data/secret/sumit.ans sumit/data/secret/sumit.in
- Problem input data files end with the extension .in
- Judge's answer files end with the extension .ans
- For every .in file there must be an .ans file with the same name.
- data files must be in the data/secret directory
Solution source locations
These are examples of optional source code solutions to a problem.
sumit/submissions/accepted/Sumit.java sumit/submissions/accepted/sumit.c sumit/submissions/accepted/sumit.cpp
Sample data file location
This sample data is for the teams, usually it is the same data that is printed/listed in the problem description.
In the 9.3 distribution there are examples of problem.yaml(s) and problem files under the samps/contests directory.
Here is the example of the files under samps/contests/sumithello/.
hello/data/secret/hello.ans hello/data/secret/hello.in hello/problem_statement/problem.tex hello/problem.yaml sumit/data/secret/sumit.ans sumit/data/secret/sumit.in sumit/problem_statement/problem.tex sumit/problem.yaml
Here is an example with multiple data sets
squares/data/secret/squares-test1.ans squares/data/secret/squares-test1.in squares/data/secret/squares-test2.ans squares/data/secret/squares-test2.in squares/data/secret/squares-test3.ans squares/data/secret/squares-test3.in squares/data/secret/squares-test4.ans squares/data/secret/squares-test4.in squares/data/secret/squares-test5.ans squares/data/secret/squares-test5.in squares/problem.yaml