IOI 2002

Return to IOI'2002 Competition

Programming Environment

Please first check the general information about the competition programming environment from the Competition Rules.

The main environment for the contest is Linux. Linux is available as a programming environment (specifications below) and also the servers and evaluation (grading) runs on Linux. However, we provide the contestants with dual-boot computers where you can program either in Linux or in Windows environment.

The evaluation is based on source-code submission and the evaluation system compiles the submitted source code. As a consequence, also the programs written in the Windows environment are re-compiled for evaluation in Linux (using the same compiler). This is something that all contestants using Windows must be aware of. For example, uninitialized variables may cause undefined behavior when executing for the evaluation.

We favor fairly standard operating system installations. But we may modify the installations for hardware support and security fix.

The compilers used in the competition are GCC for C and C++ programs and Freepascal for Pascal programs.

Generally, the installations are designed for the following main alternatives:

  1. Pascal as the programming language, Freepascal compiler, Freepascal IDE.
  2. C/C++ as the programming language, GCC compiler, RHIDE IDE.
  3. Editors(emacs, vim, ...), command-line compilation/debugging, a graphical front end "ddd" to debugging.
Option 3 is targeted primarily for Linux, although it is possible to use Windows Edit and command-line compilation.

The specification is: a PC with a 1.7 GHz Pentium 4 processor, 256 MB RAM, a standard US keyboard, a mouse, and a 19 inch CRT.

For Linux, we are using Debian release 3.0 `woody'. You can get more information from Debian's home pages at http://www.debian.org. The tasks are chosen by tasksel with the following choices:

And additional packages are chosen by dselect:

GCC on Linux:

We use gcc-2.95 which is installed as a part of the Linux Debian woody.

You can learn about the availability of various GCC versions through http://gcc.gnu.org. If you install a Linux version and include development tools, then you are extremely likely to get a GCC version.

Pascal on Linux:

You can get the Freepascal software through http://www.freepascal.org, which shows a number of mirror sites. We have installed the binary version of freepascal 1.0.6. You can download fpc-1.0.6.ELF.tar (14.3 MB) file, which contains a standard tar archive, with an installation script. After untarring the archive, you can run the installation script in the created directory by issuing the command "sh install.sh".

RHIDE for Linux:

The debian woody doesn't contain the RHIDE package. You can download the tarball file from http://www.rhide.com.

Pascal IDE for Linux:

You can download the snapshot version of Linux IDE with debugging support. You should be able to download it at the development section from http://www.freepascal.org.

Linux and Cygwin:

You may want to learn about using Linux and do not want to install it. The GNU tools are in the core of the Linux facilities, and you can obtain a much larger collection of them from the DJGPP package (see Windows/gcc). A collection of GNU facilities can also be obtained from http://www.cygwin.com. This Cygwin package has even more of the feel of Linux, as they are being used through the bash shell, which is common in Linux systems.

Note that the Cygwin is not a part of the the competition environment.

We are using Windows XP. We expect support for the hardware to be available in Windows XP. You can get information about Windows from http://www.microsoft.com/windows/.

The windows environment includes vim and emacs as well as notepad.

GCC on Windows:

The GCC compiler version we are using in the windows environment is GCC 2.95.3.

WARNING: If you install Freepascal and GCC (e.g. as in DJGPP) in the same Windows installation, be sure to have DJGPP in your path before Freepascal, or GCC won't work. This seems to be because it finds cpp.exe from the pascal binaries and then thinks that the pascal binary directory is the place for its compiler binaries, which it subsequently fails to find.

For windows, we are using the DJGPP. You can find out about DJGPP and downloading it from http://www.delorie.com/djgpp/.

Our current installation includes the following packages:

Pascal on Windows:

We have installed Freepascal 1.0.6. See http://www.freepascal.org for obtaining a copy. If you install the full version dos106full.zip, you just first unzip the file and run install.exe.

You can use Freepascal with its own IDE.