Regional Contest Programming Environment
This page describes current plans for the Programming Environment which will be available to each Regional Contest team. Please note that these plans are subject to change. See the "Update History" list at the bottom of this page for information on the currency of what is shown here.
Hardware:
Each team at each site at the Regional Contest will be provided with one workstation.
The hardware configuration of the workstation will be determined by each site.
Every effort will be made to ensure that teams at all sites have equivalent hardware resources.
No hardware substitutions will be allowed (that is, teams may not bring their own equipment onto the contest floor).
This includes that teams may not substitute keyboards or other peripherals; all teams at a site will use identical equipment during the contest.
Software:
The software configuration for the Regional Contests is based on that which is used at the ICPC World Finals, and will consist of the following:
-
OS:
- Ubuntu 22.04.1 LTS Linux (64-bit). A list of packages included in the OS image can be found
here.
-
Desktop:
-
Editors
- vi/vim
- gvim
- emacs
- gedit
- geany
- kate
-
Languages:
-
Java
- Openjdk version 17.0.5 2022-10-18
- compiler flags: -encoding UTF-8 -sourcepath . -d . {files}
- runtime flags: -Dfile.encoding=UTF-8 -XX:+UseSerialGC -Xss64m -Xms1920m -Xmx1920m
-
C
- gcc version 11.3.0 (Ubuntu 11.3.0-1ubuntu1~22.04) with compiler flags: -x c -g -O2 -std=gnu11 -static {files} -lm
-
C++
- g++ version 11.3.0 (Ubuntu 11.3.0-1ubuntu1~22.04) with compiler flags: -x c++ -g -O2 -std=gnu++20 -static {files}
-
Python 3
- PyPy version 7.3.10 with GCC 9.4.0 providing Python 3.9.15
- A list of the installed Python modules can be found
here.
-
Kotlin
- Version 1.7.21
- compiler flags: -d . {files}
- runtime flags: -Dfile.encoding=UTF-8 -J-XX:+UseSerialGC -J-Xss64m -J-Xms1920m -J-Xmx1920m
Note that Python 2 is not supported at the PacNW and Rocky Mountain Regional Contests
(and is no longer supported at the ICPC World Finals).
-
IDEs:
-
Eclipse 4.13 (2022-12), configured with:
- JDT (Java Development Tools version 3.18.1400.v202212123-1800 using Java as listed above)
- CDT (C/C++ Development Tools version 11.0.0 using C/C++ as listed above)
- PyDev (Python Development Environment version 10.0.2 using Python 3 as listed above)
-
IntelliJ (IDEA Community Edition version 2022.3), configured with:
- Java as listed above
- Kotlin as listed above
-
CLion (version 2022.3), configured with:
-
Pycharm Community Edition Python IDE (version 2022.3), configured with:
-
Code::Blocks (version 20.03-3.1), configured with:
-
Visual Studio Code (version 1.74.2), configured with:
- Microsoft C/C++ Version 1.9.7. (Note that the Judges will compile C/C++ programs with GCC
as listed above, not with Microsoft C/C++.)
Compilation of Submissions
During the contest, teams will submit proposed solutions to contest problems to the Judges using the
PC2 Contest Control System.
Check the PC2 Web Team Interface (WTI) Team Guide for further details.
Source files submitted to the Judges will be compiled using the language systems and flags described above.
The "{files}" notation in the above descriptions represents the list of source files from the submission which will actually be compiled.
Files with the following suffixes (and only files with these suffixes) will be submitted to the compiler:
- For C submissions: files ending with .c
- For C++ submissions: files ending with .cc, .cpp, .cxx, or .c++
- For Java submissions: files ending with .java
- For Python submissions: files ending with .py
- For Kotlin submissions: files ending with .kt
Execution of Submissions
For each language, if the compilation step is successful then the submission will be executed as follows:
- For C/C++: the executable file generated by the compiler will be executed to generate the output of the submission.
- For Python 3: the main source file will be executed by the PyPy3 Python3 interpreter to generate the output of the submission.
- For Java: the compiled main class will be executed using the java command with the runtime flags listed above.
- For Kotlin: the compiled main class will be executed using the kotlin command with the runtime flags listed above.
Compilation and execution as described above will take place on a dedicated judging machine.
Each judging machine will be an AWS M5.Large machine with 4 CPUs and 16GB RAM.
Build Instructions:
Instructions for building a system identical to what is planned for team use at the Regional Contest are posted
here.
Please note that the image created by these instructions is a draft,
subject to changes as we approach the contest.
See the Revised date at the bottom of that page to determine the most recent change date.
Reference Materials:
The following packages will be available on team machines at the Regional Contest, and will be installed automatically as part
of the steps listed under Build Instructions, above.
- JDK JavaDocs
- C++ STL docs
- PC2 Team Guide (as linked above)
- Additional Information:
We welcome all suggestions and comments. This configuration is subject to change until the final update.
All questions about the system configuration should be directed to
John Clevenger, Regional Contest Technical Director.
Update History
February 3, 2023 Updated various links; minor edits (jlc)
February 2, 2023 Initial version, cloned from NAC 2023 description (jlc)