Updated 09:01 Sep 29 2004
Regional Director: Andrew Staugaard


Site Directors


CCSC Central Plains Region


Information For...




Problem Authors

The 2005 Contest





Operating Systems

You must use a modern 32 or 64-bit operating system such as Windows NT/2000/XP, Mac OS X, or any recent flavor of Linux, BSD, or commercial Unix. The important features of these operating systems are (1) support for writing programs using a flat 32 or 64-bit memory model, and (2) preemptive multitasking, which means that if a program crashes it shouldn't take the whole OS with it, requiring a reboot. Windows 95 or lower, any flavor of DOS, and Mac OS 9 or lower are not acceptable. Windows 98/98SE/ME are marginally acceptable, but because they use 16-bit legacy code internally their use may be deprecated in the future.

Programming Languages

Teams may elect to program in C, C++, or Java. You must provide compilers for these languages.

General Requirements

  1. All compilers must support a flat 32 or 64-bit memory model.
  2. You may not have more than one compiler per language. For example, you cannot provide both Visual C++ and gcc. Sometimes code that works fine with one compiler will not work with a different compiler, and we can't risk that happening during the contest. (It actually has happened in the past, hence the rule.) Since most modern C++ compilers also compile C, in practice most sites will have two compilers: a C/C++ compiler and a Java compiler.
  3. If a compiler has an IDE, it must also have a command-line equivalent. Contestants will prefer to use the IDE, but the judging utilities require a command-line compiler. Most modern IDEs also provide a command-line equivalent. It is your responsibility to ensure that the default settings for both the IDE and command-line compiler match! If they use different settings for optimization, debugging, etc., it may happen that a program will work correctly for the contestant when using the IDE but fail when the judges test it. This too has happened in a previous contest.
  4. You may not provide teams with a CD-ROM or other removable media that contains the compiler to be used during the contest. (Of course you may distribute whatever you want after the contest.) Some books and promotional materials contain CDs with a working compiler, and in the past at least one site asked to use such a CD during the contest. The idea was to give each team a CD that they would then use during the contest, rather than installing a compiler on each machine. The problem is that all CDs (and Zip disks, etc) look alike, so it is very difficult to ensure that teams don't have a CD that they're not supposed to.
  5. You are not required to provide a symbolic debugger for each language. Virtually all IDEs provide one, but many command-line-only compilers do not.

Language-Specific Requirements


The compiler must support the Standard C (1989) specification, as documented in Harbison & Steele's C: A Reference Manual (5/e). All modern compilers do. Support for the newer 1999 specification is not currently required.


The compiler must support the Standard Template Library as defined in Stroustrup's The C++ Programming Language 3/e. In particular, it must support the modern iostream library, strings, container classes, algorithms, and function objects.


The minimum requirement is compatibility with Sun's Java 2 SDK 1.5 or higher. No Microsoft Java or J++ compiler is acceptable.

Free Compilers and IDEs

You will probably just use the compilers that you normally provide for your students. If they are not acceptable, or if you want to consider other alternatives, here are a few free compilers and IDEs.

Borland Kylix 3 Open Edition

Supports C++ for Linux.

Digital Mars

A good Windows C/C++ compiler. Make sure to get the STL port.


"An open extensible IDE for anything and nothing in particular." Very good, and used at the World Finals. For Windows and Linux.

JBuilder Foundation X

A nice Java IDE for Windows, Linux, Solaris, and Mac OS X.

MinGW (Minimalist GNU for Windows)

A native Windows version of gcc and friends. Get a recent version that provides gcc 3.2 or higher.


A good Java IDE, for Windows and Linux. Can be a memory hog.

Open Watcom

An open-source version of Watcom's C/C++ compilers, for Windows.

JDK 5.0 with NetBeans 4.1 bundle

The latest version of Sun's Java Development Kit and NetBeans for Windows, Linux, and Solaris.



Based on procedures and materials developed for the ACM Mid-Central Regional Programming Contest.