Honor code

As a Stanford student, you are expected to adhere to the honor code. You are still expected to conduct yourself according to the rules, even if you are not participating on site in the Gates building.

Collaboration policy

Students can participate as an individual or as part of a team (of 2 or 3 members). However, if you have represented Stanford in any previous regional contest, you cannot participate as a team. If you participate in a team, only one machine per team is allowed.

With the sole exception of your teammates (only if you are competing as part of a team), you may not collaborate with other contestants, students, or anyone else during the contest. This includes including, but not limited to: verbal, electronic, written, telepathic communications.

Reference materials

You may use any amount of written resource materials such as books, manuals, and program listings. You may not use any Internet resources, other than the following exceptions:

You may not, however, electronically copy from machine-readable versions existing code or data. That is, all programs submitted must be manually typed in their entirety during the contest. No cutting and pasting of code is allowed!

Using a personal machine

We encourage you to bring your personal machine, especially if that is the development environment you are most comfortable with. Remember, however, that if you participate as part of a team, your team, as a whole, may only use one computer. The solutions you submit will be judged on the judge machines that run a 64-bit Linux. So, if you're writing any code that may be compiler or platform specific, it would be worthwhile to test your program on a Linux machine (e.g., myth) before submitting it. The judges are not responsible for any discrepencies between your development environment and that found on the myth systems used for judging (see next question).

To keep the computing environments as fair as possible across contestants, we ask that you restrict your use of software during the contest to text editors, IDEs, document readers, and a browser for the sole purpose of connecting to the contest site (and perhaps a language reference). In other words, please refrain from using programs like Mathematica, Maple, or other specialized tools if you have them installed. You may also use a simple electronic calculator (or the software one that comes pre-installed on your OS), but no fancy graphing calculators please!

Technical details

The supported languages are, C++ (g++), Java (OpenJDK), Python 2 (PyPy), and Python 3 (CPython). Contest problems are designed so that input data is read as text from standard in (console), and text output is written to standard out. Solutions are to be submitted as source code to the judge via a web interface, so that the platform you are working on ultimately does not matter. Gates computer clusters have desks with monitors and power outlets where you may bring and plug in your own laptop. If you are working in a Windows environment, you may want to ssh into one of Stanfords UNIX computing environments (myth, corn, etc.) to compile and test your code there as well. It is a good idea to familiarize yourself with these machines BEFORE the contest so that you are comfortable with editing and compiling code on the contest machines. If you're using a Windows machine, but wish to edit and test your code in a UNIX environment, consider using Xming for running remote XWindows sessions.

Scoring

This contest scoring system will be the same as the ICPC World Finals. That is, the winner is the team solving the most problems. If two teams solve the same number of problems, then the team with the lowest time is the winner. If two teams have the same time the submission time of the last solved problem is used as a tie-breaker.

The time is the sum of the time of submission (in minutes) of the earliest correct submission for each solved problem, plus any penalty minutes for each incorrect submission of a problem prior to solving that problem. Penalties are 20 minutes for any of the following reasons:

Each program is allotted only several seconds of execution time to process all of the input test data, so algorithmically efficient code is important!