All contestants will use a customized linux environment based on the current Ubuntu Long Term Support(LTS) release. This environment is optimized for booting off a usb flash drive, so no modifications to the computer hardware are required.
This is similar to the World Finals contest environment which is also conducted in a linux environment.
Installation is as simple as imaging a flash drive. Instructions for both Linux and Windows are provided.
gunzip ??.img.gz
dd if=??.img of=/dev/sdx bs=1M
Once you have imaged your flash drive, it can be used in any x86-64 computer capable of booting from a usb drive. UEFI boot or regular BIOS booting are both supported. The hard drive of the system will not be changed and is inaccessible to the contestants.
No password is needed to log in as the contestant
user. The password for the icpcadmin
account on the '-insecure' image is icpcadmin
, and this user has root (sudo) privileges.
On the regular images this password will be distributed by your contest manager.
Name | Size | Description |
---|---|---|
midatlantic-2023-02-19_image-amd64.img.gz | 5.8G | ICPC MidAtlantic Regional Contest Environment |
southcentral-2023-02-19_image-amd64.img.gz | 5.8G | ICPC SouthCentral Regional Contest Environment |
southeast_2023-02-12_image-amd64.img.gz | 5.8G | ICPC SouthEast Regional Contest Environment |
The environment is loaded with the programming languages and compilers that are used by the ICPC World Finals as well as some of the more popular IDEs and editors. See below for a list of available software and tools.
Language | Version |
---|---|
c | 11.3.0-1ubuntu1~22.04 |
c++ | 11.3.0-1ubuntu1~22.04 |
java | 11.0.17+8-1ubuntu2~22.04 |
Language | Version |
---|---|
python3 | 3.10.6-1~22.04 |
pypy3 | 7.3.9 (Python 3.8.13) |
kotlin | 1.7.10-release-333 |
Tool Name | Version |
---|---|
Eclipse | 2022-12 (4.26.0) |
Eclipse PyDev | 10.1.3.202301231743 |
Eclipse CDT | 11.0.0.202211300214 |
(G)Vim | 8.2.3995 |
emacs | 27.1 |
gedit | 41 |
GNU Make | 4.3 |
Geany | 1.38 |
IntelliJ IDEA | 2021.3.2 (Community) |
PyCharm Community | 2021.3.2 (Community) |
Code::Blocks | 20.03 |
Visual Studio Code | 1.75.1 |
This contest image is designed to provide contestants with easy access to their work after the contest is over. Contestants can take the drive with them and boot it on their own machines to recreate the contest environment exactly. They can also copy files into the folder /mnt/usbdrive
(or /home/contestant/usbdrive
), which is a Fat32 compatible filesystem. In this way they can simply plug the flash drive in to any Windows/OSX/Linux machine and view the files directly.
There is a user manual that you should read: User Manual
Each workstation must be configured for each team with a few simple settings. The first time the environment boots it will run through a few prompts to set everything up. Just follow the prompts and everything will be configured. After configuration the system will run a self-test. Green is good, red is bad, but there are some cases where red is ok (e.g. days before the contest kattis may not load, so it'll be red; or if you choose not to configure printers)
After the practice round, it is important to reset all team workstations before the real contest begins. This is a simple process. Log the contestant user out on each workstation. Then log in as the Clear Team Account
(teamreset) user using the same password as for the icpcadmin
user. This will remove all files from the contestant user and reboot the machine. It will preserve the team id/name and printer ip address settings.
Each contest machines joins a private vpn network on boot. This allows the contest technical director access to any manchine remotely to apply updates/diagnose issues. If any issues are discovered during the practice round, it may be possible to push out a hotfix before the contest if attention is brought to the technical director in time.
Logging in as the icpcadmin
user is sometimes beneficial if you need to adjust various things. It's a full linux machine so you can do basically whatever you'd need to do.
The firewall is configured to block the contestant user from accessing anything on the network except localhost
. There is a squid proxy running that is configured by default and only allows access to certain restricted sites (e.g. kattis).
All other users/accounts have unrestricted access to the network. This allows for printing with cups or troubleshooting issues without having to remember to turn the firewall off or back on.