Skip to main content

Contest Rules

Introduction

Contestants will have 3 hours to successfully solve as many problems as possible by writing a program for each one. Each problem (see a sample) includes a problem description as well as some sample input and output.

Contestants are judged on the number of problems solved, the time it takes to solve them, and the number of times a contestant submits a problem before it runs correctly. In other words, the objective is to complete the most number of problems in the shortest amount of time (see "How the winner is determined" below).

Here are some general rules and an explanation of the contest environment and procedures. It will be to your advantage to familiarize yourself with this information and ask any questions before you come on Saturday.

Environment/Supported Languages

See the details on languages and platforms for the contest. 

Procedure

  1. The contest uses a web-based Contest Management System for solution development, testing, and grading. Contestants can practice using the system during the practice round. See a tutorial on using the system.
  2. Contestants can use either the CMS or a development tool to write their code. After writing a program to solve a problem, contestants should test their solution using the CMS, then submit it to the judges.
  3. When the judges receive a submission, they will test it using their own test data (which is not available to the contestant). After the solution has been tested, the contestant will be notified of the result (see "Judge Response" below). Note that, since the judges use their own test data, it is quite possible that a solution that produces correct results for a contestant's test data will crash or produce erroneous results when fed the judges' test data. Contestants are encouraged to test their programs on data other than the sample data provided.
  4. After the contest has started, contestants who have questions about a problem or any other aspect of the contest should submit the question to the judges using the CMS system. The judges will respond electronically.

Writing Solutions

Keep the following in mind as you write solutions to the contest problems.

  • The program must read data from standard input and write output to standard output. Your solution should not:
    • Read / write external files
    • Prompt for input or echo the input (do not print out the data you read in). The testing system is automatic, and prompts will cause your submission to be rejected as incorrect.
  • The output produced by your program must be formatted as specified on the problem sheet.
  • If you are using the web-based CMS editor to write your code, your code is automatically saved in the browser cache. 

A solution to the sample problem is available.

Rules

  1. There should be one or more proctors in each room where students are competing. 
  2. Contestants may access approved online reference material (see language links). They may not search the Internet for solutions.
  3. Students should not share pseudocode, problem solutions, or algorithmic hints between competing teams.
  4. Contestants may submit problems in any order.

Judge Response

After a submission has been tested, the automated judge will report the result as one of the following:

  • correct
  • run-time error - means the program crashed
  • wrong output - some or all of the output was incorrect
  • time limit exceeded - program ran too long (see note below)

In some cases, judges may manually review automated test results and provide additional clarification about the nature of the wrong output by indicating one of the following:

  • incomplete output - program didn't output all that was required
  • extra output - program output extra data / garbage
  • presentation error – program output was nearly correct but did not conform to the specified output format

In the event of a manual review, although the judges will not attempt to mislead the contestant, they will not guarantee identification of the real error of the program. Normally, the first symptom of error will be noted and described by the most appropriate phrase.

Note: If a program takes an excessive amount of time (more than 5 seconds) to run, the automated judge will terminate it without waiting for it to complete, and will report "time limit exceeded".  

How the winner is determined

The contestant with the most correct submissions is the winner. In case of a tie, contestants who solve the same number of problems are ranked by least total time. The total time is the sum of the time consumed for each problem solved. The time consumed for a solved problem is the time elapsed from the beginning of the contest to the submittal of the accepted run plus 20 penalty minutes for every rejected run for that problem regardless of submittal time. There is no time consumed for a problem that is not solved.

For example, consider the following ranking chart: 

Rank

Contestant

# Correct

Penalty Points

1           twins

2       laser

3        safe

4        stlouis

5        song

6         war

1

Frank

4

299

(2)  40

(1)  31

(1)  115

(2)  113

 

(2)  --

2

Bob

4

455

(1)  37

 

(2)  98

(1)  146

(1)  174

 

In this ranking chart, each value in parentheses represents the number of submissions of the given problem. The subsequent value gives the number of minutes into the competition of the accepted submission, plus 20 points for each rejected submission. For example, Frank had to submit problem #4, "St. Louis", twice before it was accepted by the judges. His second submission of problem #4 occurred 93 minutes into the competition, so the total time consumed for that problem was 93 + 20 = 113.  Frank's total time consumed for his accepted submissions was 40 + 31 + 115 + 113 = 299. Since that total time consumed was less than Bob's at 455, Frank wins, even though Frank had far more incorrect submissions. Note that Frank's two attempts at submitting problem #6 were both rejected; he never solved it, so his two rejected attempts did not count against him in the final accounting.