Preparing for the UCF Local Programming Contest

There are multiple ways one could prepare for the UCF Local Programming Contest.  Probably the best is to solve a few problems ahead of time and then to attend the Practice Contest, which will be held one week before the actual contest. (If you are completely new to competitive programming, please scroll down for some additional, more specific advice.)

For problems to solve, we include some older sets here on this site.  There are also a number of online judging sites that can be used to practice ahead of time.  We list them below.  As a starter, we recommend that you focus on the U.S.-based sites.  A mix of the USACO and TopCoder sites would be good (and both have sufficient instructions on how to solve the problems).

For regular practice, the UVa, PKU and ZJU sites are great.  They have a wide range of extremely easy to fairly challenging problems.

For special training, the SGU and El Judge sites are good.  They have fewer, but tougher, problems.

U.S.-based:

NameURL
ICPC Archive
(Finals & Regionals Sets)
http://acmicpc-live-archive.uva.es/nuevoportal/
Top Coder http://www.topcoder.com/tc
USACO Training http://train.usaco.org/usacogate

 

Chinese-based:

NameURL
Zhejiang University
Programming Judge
http://acm.zju.edu.cn/
Peking University
Online Judge
http://acm.pku.edu.cn/JudgeOnline/
Hunan Online Judge http://acm.hnu.cn:8080/online/

 

Russian-based:

NameURL
Ural State University
Programming Judge
http://acm.timus.ru/
Saratov State University
Programming Judge
http://acm.sgu.ru/index.php
El Judge http://acm.mipt.ru/judge/

 

Other International:

NameURL
UVA Online Judge http://icpcres.ecs.baylor.edu/onlinejudge/
Sphere Online Judge http://www.spoj.pl/
Euler's Project http://www.projecteuler.net/

 

New to Programming Contests? Follow these steps!

  1. Understand the Rules.

    Knowing the rules can help you formulate a highly successful strategy before the competition starts.

  2. Know Your Input/Output Routines.

    Coding I/O routines is a part of the competition where a lot of new contestants make costly mistakes. Take a little bit of time before the competition to cement your knowledge of these APIs, and you will avoid losing precious minutes while debugging your code.

    • Check out the tutorials on this site for coding with standard input and standard output.

    • Try out our instructions for redirection with command-line tools in Java, C, or C++. These are listed as "How will the judges run my program?" questions in the FAQs for the HSPT:Online Edition.

    • Please be aware that many of the reference solutions in our problem archive use specific files for input/output. Don't get in the wrong habit of using new File in Java or fopen or ifstream in C/C++. Using standard input/output is typically much simpler when writing code, although it can be slightly more awkward to test.

  3. Try Some Practice Problems.

    To gauge your abilities, take a look at the problems that were posed in previous UCF High School Programming Tournament competitions. Here are a few recommended ones:

    It also helps to skim through entire problem sets. Can you devise a strategy for attacking a problem set during competition? Try skimming through these sets and see whether your strategy would help.

    Don't be put off by the fact that these are "high school" level problems. There could be similar problems at a college level contest.

    There are plenty more to try in our archive, along with reference solutions and the full, comprehensive data that was used for judging.

  4. Collect Your References.

    Are there any reference books or printouts of sample code you'll want to have nearby? Consider whether any of these might be helpful, based on the problems from previous competitions:

    • Trigonometry formulas

    • Descriptions of useful data structures

    • Pseudo-code for useful algorithms

    • ProTip: Graph paper is sometimes useful.

  5. Attend the Practice Session.

    There will be a practice session on the Saturday before the competition. Plan to attend the full orientation and spend at least 30 minutes during once the contest starts. This is your chance to try out the submission system, and see how the scores are reported.

    It's really a good idea to learn to use the system before competition day, and make sure everything works correctly for you. A small misunderstanding or a glitch in uploading submissions can cost a lot of time during the competition!

    It's also a "practice" for the systems, judges, and coaches, and we need your help to verify that the system is working correctly! You are welcome to experiment with submissions and responses, since you can submit code multiple times.

Follow these steps and you will feel like a pro during your first competition! All that remains is to flex your problem-solving skills and to write great code!