Problem package
A problem package is the unit of work in TCFrame that defines a problem and its test data. It is a directory that consists of all files related to the problem, particularly a spec file and one or more solution files. It is identified by a unique name called slug.
Slug
A slug can be considered as the codename of a problem. For example, if your problem name is "Counting Tree", the slug could be tree
or counting-tree
or whatever you like, as long as it consists of one or more characters a
-z
, A
-Z
, 0
-9
, and -
. The produced test case files will have the slug as the prefix, for example: tree_1.in
.
The slug will be taken from the name of the problem package's directory. For example, if your problem package directory is /home/fushar/my-contest/tree/
, then the slug would be tree
.
It is also possible to prepend the slug with some metadata string, separated by an underscore (_
). For example, if tree
if your third problem in your contest, you might want to call your problem package directory /home/fushar/my-contest/c_tree/
. In this case, the slug would be still tree
.
Components of a problem package
-
The formal specification of the problem.
-
Solution files
A reference solution and one or more alternate solutions to the problem.
-
Optional, e.g. custom scorer and communicator.