Skip to main content

Contest Rules

Introduction

Contestants will be given 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).

Each problem has been selected and described very carefully. All problems can be solved in a reasonable amount of time with a relatively small amount of code (approximately 20-100 lines). Each problem is designed to challenge primarily problem solving ability and secondarily the ability to translate a solution into a working program.

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. Note: Visual Basic is supported for non-GUI, Console applications.

Procedure

  1. The contest uses a web-based Contest Management System for solution development, testing, and grading. There will be a brief orientation period when contestants can practice using the system.
  2. At the beginning of the contest, each contestant will be given a copy of the contest problems. Contestants may then begin writing programs to solve the problems.
  3. 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 sample data provided.
  4. When a contestant is ready to submit a solution for judging, he uses the CMS system to transmit the solution to the judges.
  5. 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.
  6. 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.

  • Your solution should not:
    • Read / write external files
    • Clear the screen
    • 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. If you use another development tool to write your code, save your work frequently! If your computer locks up - that's life!
  • Programs are not judged on style - do whatever it takes to solve the problem quickly and correctly.
  • You may use any code that you have brought with you in printed form. 

Rules

  1. Judges will not accept verbal questions about problems. Electronic questions may be submitted about ambiguities or errors in the problem statement. If an error exists, an announcement will be made to all contestants.
  2. Contestants may bring reference books to use in the contest. They may also access approved online reference material (see language links). They may not search the Internet for solutions.
  3. A contestant may test his program with his data as much as he likes without penalty. Sample test data for each problem is provided in the handout.
  4. The program must read data from standard input and write output to standard output, and must be named as instructed (see "Writing Solutions" above).
  5. 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.