ACM ICPC Banner


Updated

Computing and Judging Environment

Note: you are encouraged to bring hardcopies of this page or any other pages from our web site to the Regional Contest.

Each team will be assigned a work area that includes a computer workstation, a small table desktop, and three chairs.

The contest will be held on networked Pentium-III and Pentium-IV computers running a patched Red Hat Linux Fedora 8 or 11 (the judges haven't decided yet) with the Gnome X-Windows environment.

Each team will have a machine of its own to use during the contest. During the contest, contestants are to use the network only to submit contest problems or questions and get responses from the contest officials. Connecting to any other computer on the LAN or Internet, either before or during the contest, with telnet, FTP, Web browser, email, or any other network application is grounds for expulsion from the contest.

Programming Languages

Language
version
C gcc 4
C++ gcc 4
Java 1.6

What tools and documentation will be available online?

C++ Notes

Programs will be compiled using libstdc++ (-l stdc++).

Editors

For additional information on the editors, please see the Guide to UNIX and Editors.

Editor
Version
Notes
ed 0.2
emacs 21.3 character-based
xemacs 21.4.15 mouse/character-based
gedit 2.6.0
vim 6.2.457 Vi IMproved

Note: jed and pico are not supported.

Sample Workflow

There is a common, indeed recommended, sequence of activities and commands that teams should follow during the contest.

  1. At the beginning of the contest, retrieve all sample input, output, and supporting files.

      getdata

    Typically, files with be of the form

      sampleN.in
      sampleN.out

    sampleN.in is a properly formed input file for problem N.
    sampleN.out is the output file that a properly working program will produce from sampleN.in.
    There is a causal relationship between sampleN.in and sampleN.out!

  2. Inspect the question and answer dialog between contestants and judges. You may find useful clarifications and corrections even at the beginning of the contest.

      answers

  3. Choose a problem to work on. Edit/Compile/Debug using the tools that you prefer. When you are ready to execute your program against the sample data, use the compile command to match the judges' compiler options.

      compile source_file

    You may find that your source_file does not compile properly when using the judges' options. You must fix your code to conform to the judges' requirements.

  4. Once your code compiles, run your executable against the sample input. Most programs require text output:

      ./a.out < sampleN.in

    Inspect the screen output, but don't be lazy. The judges have generously supplied you with sample output that results from properly processing the sample input. Check your output against the judges' expectations.

      ./a.out < sampleN.in > pN.out
      diff sampleN.out pN.out

  5. There may be differences between your output and what the judges expect. Before asking the judges a question, check to see if a clarification already exists.

      answers

    If you cannot find a clarification and are unable to solve the differences of your own accord, you may issue a question (clafication request) to the judges. Edit a file that contains the the problem number and your question, then issue it to the judges.

      question question_file

    The judges do not answer every question, and may in fact reword your question either for clarity or to avoid divulging judges' data. Wait a few minutes then periodically check to see if your question has been answered.

      answers

  6. Once you believe that your program is working correctly, submit it to the judges.

      submit problem_number source_file

    Determine the status of your submission (pending judgement or judged with a response code).

      status

    It takes time for judges to issue a response. Work on another problem while waiting.

Contest-Specific Commands

Unless otherwise stated in the problem description, each of your programs is to read all its input from standard input and write all its output to standard output. For each problem, your submission will consist of a single source file.

The software environment provides the following commands to the contestants:

Judging

After you have submitted a source file for judging, your submission will be run with one or several sets of input data and the results reviewed. It is the judges' intent never to reveal directly or indirectly the specific input data the judges use to test contestant programs. The judges will respond to your submission with one of the following messages. If a submission contains more than one type of error, the response will still contain only one message. The judges will report only the first error seen, which may not necessarily be the error that occurs first or most frequently in the output.

The judges will attempt to return responses within a few minutes of submission. If it takes longer, we either are having to deal with a large number of submissions or are having other problems. (Typically, the very first submission for a problem will take slightly longer than usual to judge; also, the last half hour of the contest is usually extremely busy. Programs that require more CPU time or that have infinite loops will also take longer to judge for obvious reasons.)


Dvorak Keyboard Users

The PCs can accommodate users who prefer the Dvorak keyboard layout. Contestants may bring keyboard overlays (skins) and/or paper reference materials but may not bring keyboards. Dvorak key mappings are available in both the pseudo-console and X environments.

The following command switches the pseudo-console to Dvorak mode.

  loadkeys ANSI-dvorak

The following command switches the pseudo-console back to the default ("qwerty") keyboard.

  loadkeys us

To switch the layout in the X environment, issue the following sequence of commands. The first command saves the current (default) layout in a file that can later be read by xmodmap. The second command switches the layout to Dvorak mode (but with Num Lock disabled). The third command restores the default layout (with Num Lock still disabled). All windows will be affected.

  xmodmap -pke > ~/xmodmap.default

  xmodmap /usr/share/xmodmap/xmodmap.dvorak

  xmodmap ~/xmodmap.default

The xmodmap commands affect only the current X session and will not persist after logging out of the X session. The loadkeys commands, however, will take effect for future logins until the system is rebooted. Since we reboot all the contest workstations (and wipe the user home directories) between the warmup session and the start of the contest as part of our standard initialization procedure, any workstations that were used in Dvorak mode for the warmup session will have been reset to the default keyboard for the contest.


If you have any questions about the Contest Environment, send them to <systems@socalcontest.org> .

For more information regarding UNIX or the editors that will be available, see our Guide to UNIX and Editors.


Posted on Mon, 21-Sep-2009 20:48:32 MST
00000
Copyright © 1995-2009 ACM Southern California Regional Programming Contest <webmaster@socalcontest.org>