A four-division promotion ladder — Bronze, Silver, Gold, Platinum — sat online across a season of contests, with a proctored championship final. The flagship US route to the international informatics olympiads. Always confirm this year's structure against the official source.
USACO is unusual among competitive-programming olympiads because of its visibility: every student begins in Bronze, and the promotion conditions are explicit and threshold-based. A student who scores above the promotion threshold in any seasonal contest is moved up to the next division for the following contest. Entry is free and open to all — there is no entry exam, no national qualifier, no team formation. You register a free site account, you sit, and you move.
This visibility is part of what makes USACO the most-recommended starting point for high-school competitive programming. A new entrant can sit Bronze in the first contest, promote to Silver in the next, and keep climbing within a single season. Some students reach Platinum in their first season; most take two or three. The exact number and timing of contests varies year to year — see the official schedule for this year's calendar.
17/17 Tier-1 surfaces archived and normalized. 22 normalized result/source surfaces on file. 12-page results-trend matrix covers division populations, per-contest promotion thresholds, language mix, and the 2025–26 season structure.
| Division | Topics | What a typical problem looks like |
|---|---|---|
| Bronze | Brute force, ad-hoc, simple simulation, basic sorting / searching | Read input; iterate; check a condition. Typical complexity: O(N) or O(N log N). |
| Silver | Greedy, two pointers, prefix sums, BFS / DFS, binary search on the answer | Recognise the right paradigm. A wrong choice fails the time limit. |
| Gold | Dynamic programming, graph algorithms, segment trees, computational geometry | The Gold filter. Problems require both algorithmic insight and clean implementation. |
| Platinum | Advanced DP, heavy data structures, flow, hard combinatorics | IOI-style problems. Typically 5-hour windows with one harder problem. |
Promotion is per-contest. A student scoring above the threshold in any one contest of the season is promoted for the next contest. The threshold varies — for Bronze → Silver it is typically near a perfect score on at least one problem plus partial on others; for Silver → Gold it tightens.
The Tian2 archive holds the per-contest promotion thresholds across recent seasons. The US Open — the season's championship contest — is a proctored invitational: top competitors are invited from the online contests, and the results feed the US selection path for the international informatics olympiads. Check the official schedule for this year's invitation criteria and dates.
Reference materialThe community-maintained USACO Guide is a widely used training resource with topic modules at each division level. The official site hosts past contests ↗ going back to the early 2000s — typically with official editorial solutions, and student-contributed solutions on community mirrors. Read those at the source; Tian2 does not reproduce official problems or solutions. For a new entrant, the recommended order is: Bronze module of the Guide → first Bronze contest → diagnose weakness → next Bronze module.
The official rules support C, C++, Java, and Python. C++ is the language of competitive programming and the default for most USACO problems — and the only language used at the IOI. Python is reasonable through Silver; from Gold onward, the Python time-limit margin is tight (the judge allows more time for Java and Python than for C/C++, but the constants still bite) and most strong contestants switch. Java sits in between.
The 2025–26 season was structured slightly differently from past years — three online contests in early 2026 followed by a proctored invitational final, with no December contest. Always confirm the current dates on the official schedule ↗.
Bronze in the first contest, Silver in the next, Gold before the season is out. The promotion ladder works.— Editor's note