Programming Contest Resources

Table of Contents


Mid-Central Regional site

Please see the main website for our Mid-Central Region for rules of the contest and other valuable information. The "Acrhives" link on this page contains many years worth of past problems, including access to the input and output used by the judges that year, and even sample solutions written by the judges.

Online submissions system at SLU

For most of the problems that we discuss in our practices here at SLU, I will be placing the associated judges input/output on our system so that you can have your submitted solutions judged against that data in an automated fashion. This system also tracks your submissions so that I can see your attempts and examine your source code.

To submit a solution, you must be logged into turing or one of the Linux Lab machines, and execute a command such as

      /Public/goldwasser/icpc/submit sample.cpp
where sample.cpp is the appropriate source code for the problem. Our system is willing to accept code in C++, Java, or Python (although only C++/Java are allowed for the real ACM-ICPC contest). Also, the filename (e.g., sample) must precisely match the expectiations outlined in a problem statement, as we use that choice of name to determine which problem you are attempting.

Note: Input/Output conventions on our system are the following. Input will always be read from a file having a name such as sample.in, where sample was the identifier for the problem. Output should always be directed to standard out. These are the conventions currently used for our Region, so we use them for all practice problems (even if the problem statement says otherwise).

Please see the complete list of available problems for our online system.


ACM-ICPC Live Archive

The ACM-ICPC Live Archive contains many years worth of past problems for regionals and world finals, and it has an online submissions system allowing you to upload source code to attempt to solve problems using a feedback system similar to the contest.

UVa Online Judge

The UVa Online Judge is another site allowing you to submit attempted solutions for a variety of programming problems. Much of its content has been taken over by the new ACM-ICPC Live Archive, but there are some additional problems on this site that were not from the ICPC competitions. I'd recommend sticking with the Live Archive, but if you run out of problems and need more...

Documentation

The standard libraries for algorithms and data structures are great assets for these contests, as many commonly needed concepts are already coded and ready for you to use. Please make sure that you familiarize yourself with them. Most notably:

Bookshelf

Since we are allowed to bring books into the contest, its good to consider what to bring. Here are some top choices of mine:


Our Notes

In addition to books, we can bring in paper copies of any other information that we wish to prepare, including complete source code for many common tasks. In the long run, I envision a comprehensive document covering everything you'd ever want to know during a programming contest, with a thorough table of contents for using this document. But for now, we'll have to start writing some materials as we prepare. I'll manage keeping all of this in a single document for the contest, but I ask you to think about what sort of code you may have written for one problem that seems reusable for other related problems.

Please see our current draft of such a sheet (password required).


Our Practices


Michael Goldwasser
Last modified: Tuesday, 12 October 2010