Competitions · Computer science · USACO
USACO, the USA Computing Olympiad.
Free, open to anyone in the world, and the clearest ladder in competitive programming - Bronze to Platinum, four divisions, and you can climb all four in a single weekend if you are good enough.
Read this first
Free to enter, and open until the camp.
Two facts shape every USACO plan, and they pull in opposite directions.
Anyone in the world can compete
USACO is open to all high-school informatics competitors regardless of country. Registering an account is all that is required, and it also gives access to the practice archive.
And it costs nothing
The contest is entirely free. There is no entry fee at any division, which makes it the cheapest serious credential in this whole subject area.
But the camp is American
After the US Open comes a training camp in May that selects four students for the American team at the International Olympiad in Informatics. Students in China advance as far as the US Open and no further.
So Platinum is the destination
For an international entrant, reaching Platinum - and then performing in it - is the achievement. Treating the camp as the goal misreads the competition.
The four divisions
Bronze, Silver, Gold, Platinum.
Every new account starts at Bronze. Each division has its own contest on the same weekend, and promotion is what you are competing for until Platinum.
| Division | Who is in it | What it demands |
|---|---|---|
| Bronze | Every newly registered competitor | Basic programming knowledge and at least one language: arrays, nested loops, compound conditionals, and brute-force enumeration. The time limit is generous and most competitors clear it in one contest |
| Silver | Competitors promoted from Bronze | Simple algorithms that require real problem-solving - greedy methods, recursive search - and basic data structures. This is where a naive solution stops finishing inside the time limit |
| Gold | Competitors promoted from Silver | A genuine algorithmic foundation: shortest paths, dynamic programming, and a deeper command of data structures - heaps, stacks, trees, linked lists - along with time and space complexity |
| Platinum | Competitors promoted from Gold | Advanced data structures and deep algorithmic understanding. Some problems admit more than one optimisation and more than one valid answer |
For students who know the Chinese contests: Bronze sits near the junior CSP division and Silver near the senior one. Gold sits above NOIP and below IOI.
At a glance
How a contest actually works.
USACO runs online across a weekend window. You choose when to start inside it, and the clock begins when you open the problems.
- Who can enter
- Anyone who programs. There is no age limit and no qualifying requirement
- Cost
- Free
- Season
- Three monthly contests between December and February, then the US Open in late March or April. The American training camp follows in May
- The window
- Each contest opens across a weekend, Friday to Monday. Competitors start whenever they choose inside it
- Contest length
- Four hours for the monthly contests, five for the US Open, timed from the moment the problems are opened
- Problems
- Three per contest, in every division
- Scoring
- 1000 points per contest - 333.3 per problem, across ten test cases worth 33.33 each
- Promotion
- Usually 600 to 800 points, with the exact line published after the window closes
- Languages
- C++, C, Java, Pascal and Python
- Language of the paper
- English only since 2023. The contest was previously bilingual in Chinese and English
- Where
- Online. Code is written locally and submitted as a file through the USACO site
- Where it leads
- The US Open, and for American students a camp selecting four for the International Olympiad in Informatics
The promotion rule
Four divisions in one weekend is a real possibility.
This is the mechanic that makes USACO different from every other competition on this site, and it rewards preparing above your current division.
A perfect score promotes you immediately
Score full marks - or close to it - within your four hours, and the system tells you on the spot that you have been promoted. You do not wait for a cut-off.
And the window is still open
With days left in the weekend, a promoted competitor can attempt the next division straight away. A strong enough student can go from Bronze to Platinum in a single contest weekend.
Otherwise you wait for the line
Competitors who do not score full marks wait until the window closes and the promotion threshold is published - usually somewhere between 600 and 800 points.
Then try again next month
A competitor who is not promoted enters the same division again in the following month’s contest. With three monthlies and the US Open, there are four chances a season.
How it is marked
Correctness is only part of the score.
USACO grades submitted programs by running them, which means efficiency is assessed as directly as logic is.
Ten test cases a problem
Each of the three problems carries ten test cases worth 33.33 points. Partial credit is normal, and a solution that handles the easy cases still scores.
Too slow loses marks
A program that exceeds the time limit fails those test cases. From Silver upward, a correct but naive algorithm will not finish - which is the whole point of the division.
So does using too much memory
Every contest specifies limits on program size, memory and running time. Exceeding any of them costs the test case.
And crashing costs everything on that case
Grading is automatic and unforgiving. Handling edge cases is worth as much as finding the algorithm.
Where to start
Three starting points, depending on what you already know.
The organisers and our tutors give the same advice, which is unusual enough to be worth stating plainly.
No programming background
Start with Python or Java - both are quicker to get productive in. Learn data structures and syntax, practise steadily, and Bronze is reachable in a first season.
Some background, perhaps AP Computer Science
Start with C++ or C. They are the languages competitive programming assumes, and the investment pays through university and beyond.
Experienced, perhaps from NOI
Aim at Gold or above from the start. With data structures and syntax already secure, the work is systematic algorithm study and volume practice on past Gold and Platinum problems.
Preparation
How Hanlin prepares students for USACO.
A free contest with a public archive means the material is all available. What a student needs is a route through it and the discipline to practise at contest length.
Working the archive
Registering gives access to every past problem. Preparation is built around them by division, because the promotion line is set by exactly this kind of question.
Practising at four hours
Three problems in four hours is a specific endurance. Students who only practise single problems find the real contest a different experience.
Learning to read complexity
From Silver onward, the deciding skill is recognising that an approach will be too slow before writing it. That is taught, not absorbed.
And working in English
The contest has been English-only since 2023. Reading a problem statement accurately under time pressure is a skill worth practising deliberately.
Why Hanlin
Hanlin has been entering students for USACO for years, and publishes what they got. The record is further down this page.
Programme formats
Five ways this is taught.
Group size is the whole difference between these. It decides how much of the tutor's attention a student gets and how far the course can bend to them, so it is worth choosing rather than accepting.
| Format | Group size | What it suits |
|---|---|---|
| One-to-one | One student | Content, pace and emphasis set by what this student actually needs rather than by a syllabus. The only format that can be rebuilt mid-course. |
| Small group | Three to eight | Opens at three. Frequent discussion, and the tutor can slow down or move on according to what the group has absorbed. Most students chasing a higher award are taught in this one. |
| Class | Eight to twelve | Taught by the subject lead or a medal coach. Less back-and-forth, so it suits a student who will say when something is unclear. |
| Large class | Ten to twenty | For students in the middle of the placement range, and a way to try a competition before committing. Students often move to a small group or to one-to-one afterwards. |
| Past-paper class | No cap | Past papers worked through in sequence in the weeks before the sitting. Free to students already enrolled. |
Course length for USACO is set after a placement paper. The gap between where a student is and what the paper asks for is what the course has to close, and that gap is not the same for two students in the same year group.
How it runs
Six steps, four people on your side.
The same process for every student, so that nothing depends on one tutor remembering to do it.
Step 1Pre-course assessment
A placement paper before anything is booked, so the course tier is chosen on evidence rather than on a year group.
Step 2Tutor matching
A subject tutor is matched to the result, and their full background is provided before you agree to it.
Step 3Plan and group
A study group opens with four people on one student: the tutor, a planner, a supervisor and an academic manager.
Step 4Scheduled teaching
The teaching office sets the timetable around the competition date and school term, and teaching begins.
Step 5After-class reports
What was covered, and how the student handled it, reported after every lesson.
Step 6Homework follow-up
The teaching assistant and the form teacher both check that homework is done, which is where most preparation quietly fails.
Free resource pack
USACO past problems and preparation pack
The same material our own USACO students work from. Scan the code, say what you need, and an advisor sends it.

Tell an advisor which competition and year group, and the material comes back the same day. Free, and you do not have to enrol in anything. If we do not already hold what you need, we will go and find it.
- PDFPast problems from Bronze through Platinum, with reference solutions
- PDFThe algorithms each division actually needs
- PDFHow promotion within a contest window works
- PDFContest dates for the current season
Teaching team
Who would teach it.
Three of the twenty-two tutors on the published Hanlin roster - the ones whose subject this is.

Luo
Bachelor's and master's in computer science from the University of California and ten years in the United States. Works close to the hardware, and teaches for independent problem solving rather than pattern recall.

Tan
Master's in data science from the University of Sydney after a statistics degree at Simon Fraser University, graduating in the top 5% with repeated chancellor's honours; A-Levels at a Cambridge international school, and formerly a data analyst at Tencent. An AMC-accredited coach, a College Board-accredited AP teacher, and holder of a Math League excellent-teacher award.

He
A Cambridge master's after a computer science degree with a mathematics minor at the University of Nebraska-Lincoln, and a US high school GPA of 4.13. Six years overseas and teaches entirely in English, across AMC, Math League, AP Computer Science and AP Calculus.
Student results
What Hanlin students got.
Taken from Hanlin's published record of student honours and rewritten in English. Figures are as the organisers reported them.
Platinum in 2024-25
One line from Hanlin's published USACO record. The rest of it is below.
USACO
- 2024-255 Platinum, 25 Gold and 38 Silver
- 2023-248 Platinum, 32 Gold and 37 Silver
- 2022-2310 Platinum, 29 Gold and 71 Silver
Earlier years
- 2021-228 Platinum, 29 Gold and 53 Silver
- 2020-2111 Platinum, 18 Gold and 25 Silver
The full record, across every subject and year, is on the student honours page.
Where it is taught
Hanlin learning centres.
Teaching runs from Hanlin's own centres in Shanghai, Shenzhen, Chengdu and Hangzhou, and online for students elsewhere.







Talk to an advisor
Everything Hanlin does for USACO, in one conversation.
Entry, planning, coaching and the past papers. An advisor will tell you which of these a student actually needs, including when the answer is none of them.
Competition entry and planning
Which competitions suit this student, in what order, and by when - then we handle the registration, including the ones that can only be entered through a school or a centre.
Competition coaching
Taught by full-time subject tutors, on a course tier chosen by placement paper rather than by year group.
International curriculum tutoring
IB, AP, A-Level, IGCSE and the US high school curriculum, taught alongside school and timed around the exam calendar.
Competition past papers, free
A large library of past papers, mark schemes and syllabus breakdowns across every competition on this site. No charge and no enrolment.
Scan to add an advisor

Say which competition or course you are asking about. Replies in Chinese or English.
Or call +86 21 6352 6630FAQ
USACO, briefly answered.
What students and families ask before entering.
Can students in China enter USACO?
Yes. The contest is open to high-school informatics competitors worldwide and is free. What is not open is the American training camp after the US Open, which selects the US team for the international olympiad.
What does it cost?
Nothing. USACO is entirely free and open to anyone. Registering an account also gives access to the practice archive.
How do the divisions work?
Bronze, Silver, Gold and Platinum. Every new account starts at Bronze and is promoted by performing well in a contest. Each division sets its own three problems on the same weekend.
How long is a contest?
Four hours for the three monthly contests and five for the US Open, timed from when you open the problems. The window itself runs across a weekend and you choose when to start inside it.
Can I be promoted more than once in a weekend?
Yes. Score full marks within your contest and the system promotes you immediately, and you can attempt the next division while the window is still open. Bronze to Platinum in one weekend is possible.
How is it scored?
A thousand points per contest - three problems at 333.3 points each, with ten test cases per problem worth 33.33 each. Programs that run too long, use too much memory or crash lose the affected test cases.
What score do I need to be promoted?
Usually between 600 and 800 points. The exact line is published after the contest window closes.
Which languages can I use?
C++, C, Java, Pascal or Python.
What language are the problems in?
English only, since 2023. Before that the contest was bilingual in Chinese and English.
Is there an age limit?
No. USACO is aimed at high-school competitors but sets no formal age restriction.
How does it compare with the Chinese contests?
Bronze sits near the junior CSP division and Silver near the senior one. Gold is above NOIP and below the international olympiad.
Related
Other computing contests.
What students commonly enter alongside USACO.
USACO enquiries
The entry is free. The preparation is the investment.
USACO costs nothing to enter and publishes every past problem, so what decides a result is a route through the divisions and practice at contest length. Tell us what the student already programs in and an advisor will map the season.