Difference between revisions of "CCS Enhancements"
m (→Judging Type Section: update section) |
m (move judging types into contest.yaml lavel) |
||
Line 253: | Line 253: | ||
- Other - Contest Staff | - Other - Contest Staff | ||
- Illegal Function | - Illegal Function | ||
+ | |||
+ | == Judging Types == | ||
+ | |||
+ | Judging Settings | ||
+ | |||
+ | computer-judged: true | ||
+ | manual-review: false | ||
+ | send-prelim-judgement: false | ||
+ | |||
+ | The acceptable values are: true, false, yes and no. | ||
+ | These values are case in-sensitive. | ||
+ | |||
+ | By default a CDP load will mark a problem as computer judged. | ||
+ | |||
+ | thus: | ||
+ | computer-judged: true | ||
+ | |||
+ | |||
= [[problem.yaml]] file = | = [[problem.yaml]] file = | ||
Line 283: | Line 301: | ||
;readFromSTDIN: team solution reads from stdin, default is true | ;readFromSTDIN: team solution reads from stdin, default is true | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
= [[pc2submit]] script = | = [[pc2submit]] script = |
Revision as of 08:35, 24 June 2016
The following are PC² additions to the CCS Standard.
contest.yaml file
The following are additions to the CCS Standard contest.yaml file.
Sites Section
The sites section defines all fields for each pc2 server/site
sites: - number: 1 name: Site 1 IP: 130.86.67.202 port: 50002 password: siteone - number: 2 name: Site 2 IP: 130.86.67.201 port: 50002
- number
- site number
- IP
- site host or IP
- port
- port for server to listen on
- password
- if not present, then the default Joe password will be created. Ex. login: site2 password site2
Accounts Section
The accounts section defines team accounts, it has equivalent functionality to the Generate Accounts feature.
accounts: - account: TEAM site: 1 count: 10 - account: TEAM site: 2 count: 10 - account: JUDGE site: 4 count: 20 - account: SCOREBOARD site: 4 count: 1
Auto Judge
Automated Judging settings.
auto-judging: - account: JUDGE site: 1 number: 2 letters: A enabled: yes - account: JUDGE number: 4,5,6 letters: B,C,D - account: JUDGE site: 2 number: all letters: B,C,D - account: JUDGE site: 1 number: 1,3 letters: F enabled: no
- site
- the site number, default 1
- number
- the account number(s), use "all" to select all judges.
- letters
- the letter(s) for the problems to auto judge. Used "all" to select all problems.
- enabled
- whether auto judging is turned On, default yes
Minimum values are:
auto-judging: - account: JUDGE number: 7 letters: E
Timeout
Global Setting.
The run-time execution time limit for all problems can be specified with the timeout key. A time limit can be overridden if a timeout is specified in the problem.yaml file.
# set run time limit for all problems to 20 seconds timeout: 20
Languages
Example Section
languages: - name: Java active: true compilerCmd: 'javac -encoding UTF-8 -sourcepath . -d . {:mainfile}' exemask: '{:basename}.class' execCmd: 'java -client -Xss8m -Xmx2048m {:basename}' runner: 'java -client -Xss8m -Xmx2048m {:basename}' runner-args: judge-exec-cmd: '/usr/bin/wrapper_java {:timelimit} {:basename}' - name: 'Perl' active: true compilerCmd: 'perl -c {:mainfile}' exemask: '{:noexe}' execCmd: 'perl {:mainfile}' runner: 'perl' runner-args: '{:mainfile}' interpreted: true use-judge-cmd: false judge-exec-cmd: 'perl {:mainfile}' - name: C++ active: true compilerCmd: 'g++ -g -O2 -std=gnu++0x -static {:mainfile} ' exemask: a.out execCmd: ./a.out runner: ./a.out runner-args: judge-exec-cmd: '/usr/bin/wrapper_c {:timelimit}' - name: C active: true compilerCmd: 'gcc -g -O2 -std=gnu99 -static {:mainfile} -lm' exemask: a.out execCmd: ./a.out runner: ./a.out runner-args: judge-exec-cmd: '/usr/bin/wrapper_c {:timelimit}' - name: Python active: true compilerCmd: 'python -m py_compile {:mainfile}' exemask: execCmd: 'python {:mainfile}' runner: runner-args: interpreted: true judge-exec-cmd: '/usr/bin/wrapper_python {:timelimit} {:mainfile}' - name: Python 3 active: true compilerCmd: 'python3 -m py_compile {:mainfile}' exemask: execCmd: 'python3 {:mainfile}' runner: runner-args: interpreted: true judge-exec-cmd: '/usr/bin/wrapper_python3 {:timelimit} {:mainfile}'
Load Data Files
In 9.3 files are loaded internally (stored within pc2) by default. A feature where one can use a CDP location
Load data files internally or externally.
load-data-files: true load-data-files: false
Example of load-data-files in contest.yaml
# Contest Configuration, version 1.0 # # PC^2 Version: Version 9.3 20151021 (Wednesday, October 21st 2015 03:55 UTC) Java ver 1.7.0_51 build 3230 Windows 7 6.1 (amd64) # # Created: 2015-10-22 21:46:00 PDT name: '2015 CSUS Fall Contest' short-name: '2015 Fall Contest' start-time: 2015-10-23 17:00 duration: 4:00:00 # freeze time before end of contest scoreboard-freeze: 1:00:00 # use external CDP files load-data-files: false # Judge CDP config path judge-config-path: /home/team/cdp/config
(One other way to specify external files is in the admin pc2v9.ini
file, set [server] externalfiles=yes, but using load-data-files
is preferable.
Judge CDP Path
For files that are external to pc2 a Judge's path may be needed.
Under some circumstances the external CDP files will be under a different directory on the judge than the admin. To specify a different directory use:
judge-config-path: /home/pc2/cdp/config
Via the Admin UI specify the value in the field Location for Judge CDP Config on the Problems tab.
Example of load-data-files in contest.yaml
# Contest Configuration, version 1.0 # # PC^2 Version: Version 9.3 20151021 (Wednesday, October 21st 2015 03:55 UTC) Java ver 1.7.0_51 build 3230 Windows 7 6.1 (amd64) # # Created: 2015-10-22 21:46:00 PDT name: '2015 CSUS Fall Contest' short-name: '2015 Fall Contest' start-time: 2015-10-23 17:00 duration: 4:00:00 # freeze time before end of contest scoreboard-freeze: 1:00:00 # use external CDP files load-data-files: false # Judge CDP config path judge-config-path: /home/team/cdp/config
Judgements
Use the judgements to load allowed judgement into the system.
Example section and values.
accepted-judgement: - Accepted judgements: - Compilation Error - Run-time Error - Time-limit Exceeded - No output - Time-limit Exceeded - Wrong output - Time-limit Exceeded - Insufficient output - Time-limit Exceeded - Wrong Output - No Output - Incomplete Output - Excessive Output - Output Format Error - Other - Contest Staff - Illegal Function
Judging Types
Judging Settings
computer-judged: true manual-review: false send-prelim-judgement: false
The acceptable values are: true, false, yes and no. These values are case in-sensitive.
By default a CDP load will mark a problem as computer judged.
thus:
computer-judged: true
problem.yaml file
Problem Name
In the CCS the Problem name (full name) is in the LaTex problem.
In PC^2 the problem name is added as a key/value pair name in the problem.yaml file. For example:
name: A - Good or Bad?
Limits Section
For each problem a Run Time Limit can be specified in the limits section
# use 15 seconds for this problem definition limits: timeout: 15
Input Section
PC² has the option for a team solution (Run) to send data to the team's stdin or the team solution reads from file.
input: readFromSTDIN: false
- readFromSTDIN
- team solution reads from stdin, default is true
pc2submit script
Additional command and command line options can be used, they are:
- --help lists options and command line syntax
- --check check parameters, list filename, problem and language, do not submit.
- --list list contest problem and languages
- --listruns list run info for the user
See pc2submit for more details.
Run Submission Interface
See Also
- CCS Standard
- YAML Official site YAML file format description