Programming Contest Rules

Participating teams will program solutions to problems using either Visual Basic, C/C++/C#, or Java on computers in the Computer Science Lab MT 201/202. The top three teams in each division will be recognized during an awards ceremony immediately following the contest. The contest runs exactly 4 hours.

Team Work Area

Each team is provided a work area. Only team members are allowed in their respective work areas. During the contest, team members may use written materials (manuals, books. etc.) of any kind. Pencils and scratch paper will be provided. Calculators are permitted, too. No programmable calculators, PDAs, cell phones, or computers are allowed during the contest. Team advisors are not allowed to visit with team members during the contest.

Team Programming Area

The team programming area is openend at the beginning of the contest and closed at the end of the contest. Each team will be assigned one PC to use during the contest. Any special instructions on computer usage will be given during the contestant meeting preceding the contest. The computers are located in the Computer Science Lab, McKusick Technology Center, Room 201/202. You will enter the lab through the room 202 door way. Teams are not allowed to use any non-local internet resources during the contest. No more than 2 team members may be in the computer lab at any one time. No food or drink is allowed in the team programming area.

No external computer storage media or devices will be allowed in the computer lab. All code must be entered using the keyboard. (e.g. You may not use code found on a webpage, even if you wrote the code). Teams are allowed to print their source code, but sharing of source code amongst teams is not permitted.

If you need to reboot the computer, please contact one of the Student Monitors.

Contest Website

The contest website is http://www.usd.edu/csci/acm/contest. You can use this website to view standings, look up rules, and see examples of file and IDE usage.

Student Monitors

Student monitors from USD will be available to assist team members. The monitors will answer questions concerning computer usage and contest procedures but will not answer any questions regarding logic, language syntax, or problem interpretation. Please see questions.

Problems

When the contest begins, each team will be given approximately ten programming problems to solve. The problems document will be handed out in the team work area. Team members may work on these problems in any order and in any manner they choose. There will be exactly four hours to work on the solutions.

Programs

The following conventions must be observed when creating programs:

  • Please save your work often. System failure, while rare, does occur.
  • Each team must use the correct file name to save program files. Details on the name of each file will be given with each problem.
  • All data input must be accomplished by reading the input from a file name specified for each problem. See Program and Data Files for details.
  • If you need to stop the execution of your program for any reason, press Ctrl + Break.

Opening the Development Environment

Instructions for starting the various development environments can be found at Examples of Using the IDE's.

Program and Data Files

The Network Drive Z: is mounted for you. This network drive already contains sample data files named correctly for each problem. Always refer to these files using absolute paths in your source code.

For each problem, the data file contains the sample data that you see on the problem document. The actual judging data may be different than the sample data. Your solution must meet all problem specifications and your sample data may not completely test everything. Do not assume successful execution using sample data is necessarily a correct solution. For examples of file usage, reference Examples of File Use.

Testing

Each team may RUN their programs using their own test data files as many times as they wish. We urge you to use the sample data provided with each problem statement, but do not assume that because your program works with the sample data that it will work with the actual contest judging data. Test your programs very carefully before submitting them for judging.

Questions

Once the contest begins, all direct or indirect interaction between the teams and the judges will be limited to a specific question and answer process. This includes requests for clarification of problems as well as any other questions about a specific problem. These questions and their answers will be available to all teams throughout the contest. You must submit your questions to the judges using the PC2 system. Please refer to the PC2 Contestant's Guide. (PDF or Word Document)

Judged Runs

A judged run consists of the contest judges executing a program using the official contest judging data. You must submit your program to the judges using the PC2 software. Teams may make as many judged runs as they wish; however, each judged run counts toward the total number of team runs for judging purposes. (See Scoring.)

Time of Execution

When the contest judges are executing a program using the official contest data, a solution will be judged to be incorrect if it does not execute in less than 1 minute.

Judging

If a program is judged to be correct, a judging entry marked "Correct" will be returned to the team through the PC2 system. If a program is judged to be incorrect, a judging entry will be returned to the team through the PC2 system with one of the following indicated:

  • Wrong Answer - The program generates incorrect answer(s) to the question.
  • Run-time Error - During execution, a run-time error occurred. An example of a run-time error is dividing by zero.
  • Time-limit exceeded - The program took a substantially long time to execute - The time limit is 1 minute.
  • Output Format Error - The output was not formatted according to specifications.
  • Compilation Error - The judges were not able to run the code.
  • Other - More than one type of error was found, or the problem does not fit into any of the above categories. A more detailed explanation will follow.

Scoring

Teams will be ranked according to the number of problems they complete correctly. For example, a team that completes 6 problems correctly will finish ahead of a team that completes 5 problems correctly.

In the event of a tie, the teams that tied will be ranked according to the total accumulated time taken by each team. Accumulated time is measured as follows: For each problem completed correctly, the time from the start of the contest to the completion of the problem is calculated and added to the team's total accumulated time. If two teams complete the same number of problems, the team that has an accumulated time of 200 minutes would be ranked ahead of the team that has an accumulated time of 230 minutes.

If the teams which tied have the same total accumulated time, the team with the smallest number of judged runs will be determined the winning team.

Prizes

First, second, and third places will be awarded to the top teams in each division. A complete set of results and problem solutions will be given to each school.

Errata

A complete set of results and problem solutions will be available after the contest on the contest website. Also, all contest photos will be published on the website.

Any changes, additions, or clarifications to these rules will be announced during the contestant meeting preceding the contest.