UVA, uHunt and uDebug
You will make use of the Universidad de Vallodolid (UVA) archive of contest problems and its automated judging system. While UVA is the name of a wonderful university, we will normally equate the name "UVA" with the online resources they provide for contest preparation.
UVA has an archive of thousands of problems from previous contests with judge data. After registering for an account via their online judge, you can submit source code in C, C++, Java and Pascal to attempt to solve any of these problems.
UVA will keep track of all of your submissions. Each time you visit a problem listing page from the archive it will highlight the any problems you have solved as green and any tried but unsolved in purple. Each problem will provide bar graphs to show number of users that have submitted this problem (and how many solved it) along with how many total submissions and the percentage of correct. When you first start, you might want to make sure you pick problems that show high levels of success.
UVA also maintains a worldwide ranking for you (over 12 million registered users at UVA). As you solve problems you can watch yourself climb the world ranking. This is great way to watch your progress over your college career.
UVA also tracks runtime of submissions and maintains an ordered list. When you solve a problem, you can see how your runtime compares to other folks. You can use this information to determine how efficient your solution is. If you submit additional solutions that are faster, UVA moves you up the list.
UVA also provides a forum where problems, approaches and sample data can be discussed. This is a great resource if you are stumped on a problem.
uHunt provides a dashboard into UVA. This dashboard shows the following items:
- Chat window
- Live submission window (near realtime display of current submissions)
- Your submissions/statistics
- List of all problems you have solved
- List of all problems you have tried but not solved
- Analysis of your progress in solving problems recommended by his book
- List of recommended problems to solve next
- Your spot on the world ranklist
- Links to API info so you can develop your own custom portal
You will want to take advantage of the next to solve lists to help you choose problems that are challenging but also within your reach. If you choose to purchase his book, the charts showing your progress through his recommended problems are very useful.
uDebug is a relatively new resource. uDebug provides a web interface to allow you to try sample data against many of the UVA problems. You search for the problem you are working on. Once there, paste your sample data into the input box and click Go!. After a delay, the output window will display the "correct" output for the provided input for that problem. Behind the scenes a solution that was judged correct is used to process your input.
Having the ability to test an input file ans make sure that the answer you are getting matches a verified answer is very useful.
For select problems, uDebug provides "critical data". When you click this button, it puts a saved input file into the input window. This is data that the uDebug folks believe will help you ensure that you are covering the important cases. You can then click Go! and see the correct answer for this input.