Is the local contest an individual or team event?
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.
Can I bring notes/books to the contest?
Yes. You can bring textbooks, notes, printouts of code, and any other written material you want. You may not search for solutions to specifics problems on the Internet, though you are permitted to use online language references (e.g., the Java API documentation) and digital versions of textbooks or course notes. However, you may not 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!
Can I use my own laptop or personal computer for the contest?
Yes, we encourage you to bring your personal machine, especially if that is the development environment you are most comfortable with. However, 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!
What programming languages and platforms will be supported?
The supported languages are C (gcc), C++ (g++), Java (OpenJDK), Python 2 (PyPy), and Python 3 (CPython). Refer to the technical information page for more details.
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. Students with CS accounts are encouraged to work from the nearby PUP cluster. 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.
How many problems will there be?
There will most likely be a total of 10 problems, give or take.
What about scoring?
This contest scoring system will be the same as the 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:
- run-time error
- time-limit exceeded
- wrong answer
- output limit exceeded
- memory limit exceeded
Each program is allotted only several seconds of execution time to process all of the input test data, so algorithmically efficient code is important!