Q. How many people can be on a team?
Q. What languages & platforms will be used for the contest?
C++ and Java. The contest will be judged using 64 bit intel-architecture ubuntu linux servers. See Portability Issues to consider if you are working from some other systems.
Q. What can we bring?
Books, printouts, scratch paper. Basically, nothing electronic, or electronically readable media. This means possesion of cell phones, calculators, tablets, flash drives etc. is not allowed during the contest.
Q. What do you provide?
Site specific, but your team will have a single workstation, be fed, and have access to a classroom (or part of one) or similar place to work in relative privacy.
Q. What problems should we do first?
Since the time penalty for each correct problem is from the start of the contest, you should get the easiest problems done first. Note that determining which problems are easy is part of the contest! Seeing how other teams are progressing on the problems can help your team determine this.
Q. What do we submit?
A single source file which (if correct) solves the problem. The source file name has very specific constraints:
C and C++ programs must be console applications where execution begins from the main function with the prototype
Java programs must be console applictations where execution begins from the main method in the public basename class in the default package (no package declaration).
For example, the source file which solves the count problem should be named count.java and in this file, the only public is count:
public class count { public static void main(String[] args) throws Exception { // TODO: solve problem } }The class should be defined in the default package. i.e. with no package declaration.
Q. How do we edit/compile/run our code?
Again site specific. Assuming you are using a unix-like operating system the least-common-denominator editor is probably pico, which you can run by typing
To compile a C++ program from the command line
To run a C++ program in the current working directory:
To compile a Java program:
To run a Java program in the current working directory:
To compile a C program using gcc:
To run a C program in the current working directory:
Q. How do we test our code?
Here's a test checklist:
Note that some problems are nondeterministic, in that they allow for more than one correct answer for a given input. diff is inadequate for determining the correctness of such programs. The judges, of course, will not use diff to determine the correctness of such problems.
Q. How do we debug our code?
More site specific. gdb is the command line debugger for C and C++ programs, and you might have ddd, which is a gui-interface for this. Read the banners and h is for help. The installed IDE's should support debugging; and otherwise think about print statements with an if (debug) mask.
Q. How do we submit a problem?
Point a web browser to https://acm.coloradomesa.edu/domjudge/team/index.php. Your user name will be something like "team0033" and password will be provided by your site director. There is a simple form to pick your source file, choose the problem it solves and submit it.
Q. When we submit a problem, what should we expect back?
See the DOMjudge team manual
Q. How do we clarify a problem?
See the DOMjudge team manual
Q. How are teams ranked?
Teams are first ranked by number of correct solutions: the more problems which are solved by a team, the higher their rank.
Teams that have finished the same number of problems are then ranked by fewest penalty points: the fewer points, the higher the rank. The penalty points accrued for your team is the sum of:
Example: The contest starts at 10:00 am; Team Zorbo, turns in problem 1 correctly at 10:43, makes two incorrect submissions of problem 2 before submitting a correct solution at 12:35, and makes 3 incorrect submissions for problem 3 without ever turning in a correct solution. The Zorbos would have 225 penalty points, broken down in the following table:
Problem | Submission Penalty | Time Penalty | Total |
1 | 0*20 = 0 | 0:43 = 43 | 43 |
2 | 2*20 = 40 | 2:25 = 145 | 185 |
total | 2*20 = 40 | 3:08 = 188 | 225 |
Note that there is no penalty accrued for problem 3, since it was never submitted correctly
Enjoy the contest!