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:
Name | URL |
---|---|
USACO (USA Computing Olympiad) Monthly contests with explanations (editorials) of how to solve the problems. |
http://www.usaco.org/ |
ICPC Archive (Finals & Regionals Sets) |
http://acmicpc-live-archive.uva.es/nuevoportal/ |
Top Coder | http://www.topcoder.com/tc |
Russian-based:
Name | URL |
---|---|
CodeForces CodeForces is probably the most popular site worldwide, and many UCF team members compete and practice there. |
https://codeforces.com// |
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/ |
Chinese-based:
Name | URL |
---|---|
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/ |
Other International:
Name | URL |
---|---|
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!
Understand the Rules.
Knowing the rules can help you formulate a highly successful strategy before the competition starts.
Read carefully through the Rules and Procedures.
Make sure you understand how scoring works.
Review what the judges are looking for, and how they will respond to your submitted programs. If it's not on this list, it won't be part of the response. No hints or help will be provided to help you debug your program, other than these responses.
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 orfopen
orifstream
in C/C++. Using standard input/output is typically much simpler when writing code, although it can be slightly more awkward to test.
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:
This is SPARTA! from the 2008 UCF High School Programming Tournament.
Enraged Fowl from the 2012 UCF High School Programming Tournament: Online Edition.
Spider-Man’s Diamond Head Dilemma from the 2002 UCF High School Programming Tournament.
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.
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.
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!