NAC  Banner Image

2024 ICPC North America Championship (NAC) Programming Environment

This page describes current plans for the Programming Environment which will be available to each NAC 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 the North America Championship contest will be provided with one workstation.  The configuration of the workstation will be as follows:

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 will use identical equipment, as described above, during the contest.

Software:

The software configuration for the NAC is based on that which is used at the ICPC World Finals, and will consist of the following:

Compilation of Submissions

During the contest, teams will submit proposed solutions to the contest problems to the Judges using the DOMjudge Contest Control System. Check the DOMjudge Team Guide for further details.

Source files submitted to the Judges will be compiled using the language systems and flags described above.

The "{files}" 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:

Execution of Submissions

For each language, if the compilation step is successful then the submission will be executed as follows:

Compilation and execution as described above will take place in a "sandbox" on a dedicated judging machine.  The judging machine will be as identical as possible to, and at least as powerful as, the machines used by teams.  The sandbox will allocate memory according to the memory limit specified in the problem statement; the entire program, including its runtime environment, must execute within this memory limit.  For interpreted languages (Java, Python, and Kotlin) the runtime environment includes the interpreter (that is, the JVM for Java/Kotlin and the Python interpreter for Python).

The sandbox memory allocation size will be the same for all languages.

Build Instructions:

Instructions for building a system identical to what is planned for team use at the NAC 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:

These packages will be available on team machines at the NAC, and will be installed automatically as part of the steps listed under Build Instructions, above. 

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, NAC Technology Director.

Update History


May 22, 2024               Fixed links to DOMjudge Team Guide, Technical Notes,and Judging Notes (jlc).
May 3, 2024                 Corrected MS C/C++ Extension Version number (jlc).
May 2, 2024                 Updated machine hardware specifications, along with Python3 and VSCode details (jlc).
January 27, 2024         Initial version, cloned from NAC 2023 description (sea)