USACO is an exam that is used to select the IOI team members for the USA. These exams are held by the following schedule.
- December: First Online Contest (All users registered)
- January: Second Online Contest (All users registered)
- February: Third Online Contest (All users registered)
- March: US Open Contest (Platinum USA residents only)
- May to June: Training Camp (First 24 places from the Open Contest)
- September: IOI exam.
The exams have four levels to measure the level of students:
When you first register for the exam, you will be put into the Bronze Group. When you enter an Online Contest, there will be three questions with 10 sets of test data. If you complete all sets during the test time, which would be three hours, you can move up to the upper level, and you may restart the exam at a higher exam. If you score out above 80% of the total sets of test data, you can move to the upper level after the contest.
That sounds easy, isn’t it? However, the difficulty of the problems might be more difficult than you think when you enter a higher level. The difficulty of USACO questions with the Chinese NOIP difficulty is shown in the following graph.
Well, the difficulty is one problem. The other problem is about language. All the questions are presented in English, so your language skills are important.
This contest allows Java, C++(C++98 and C++11 are both acceptable), C(Only C89 is accepted), Python(3.x and 2.x are both allowed) and Pascal. However, the maximum runtime allowed for this program is 1 second, so C++(especially C++11, as it contains a lot of useful functions) would be my recommendation.
Here are some useful resources for USACO
http://www.usaco.org (USACO official website. you MUST register an account in order to take part in contests and practice past questions. Click here to see how to register. )
http://train.usaco.org (USACO official training website. This website provides 100+ questions for you to practice your programming skills with all conditions just like the real exam. You MUST register to see the questions. Click here to see how to register. )