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 Centos 6.0 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.

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.


Platform

You will have all the tools that accompany a rather standard installation of Linux: AWK, Python, perl, and many others. These tools simply tag along with the installation process. Any languages or programs beyond the tagalongs, the compilers, and the tools stated below are installed at the convenience and discretion of the environment manager, <systems@socalcontest.org> .

Programming Languages

The judges accept problem submissions only in the following programming languages.

Language
version
C gcc 4.4
C++ g++ 4.4
Java jdk 1.6.0_27 from java.oracle.com

What tools and documentation will be available online?

C++

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 1.1
emacs 23.1 character based (emacs -nw) and mouse based (emacs)
gedit 2.28
nano 2.0
vim 7.2 Vi IMproved, character based (vi, vim)

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  (for Java, use:  java aout < 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  (for Java, use:  java aout < 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.)