The complete
past-contest archive
The USA Computing Olympiad (USACO) keeps every past contest online — problems complete with official solutions, going back to the 2011 season. This page indexes that archive season by season and shows how to turn old problems into real training. We link to the official papers on usaco.org; we do not rehost them.
Independent guide — problems & solutions live at usaco.org · Last reviewed 15 July 2026.
| Coverage | 2011 → present |
| Per season | 3–4 contests |
| Divisions | Bronze–Platinum |
| Solutions | included |
| I/O switch | Dec 2020 |
| Access | FREE |
The Official Archive
Where can I find past USACO problems?
Every past USACO problem lives in the official contest archive at usaco.org — free to open and complete with official solutions. The archive reaches back to the 2011 season and covers all four divisions, Bronze through Platinum, for each contest. This guide indexes those seasons and links out; it does not rehost the papers.
The archive is organised the way a season runs. Each contest has its own results page listing all four division papers — Bronze, Silver, Gold and Platinum — and every problem links to its full statement and an official solution write-up. Because promotion in USACO always begins in Bronze, working through past sets in your target division is the fastest way to see exactly what that level expects before the next live window opens.
One practical detail matters when you open older sets. Solutions to most tasks before the December 2020 contest read their input from a named file such as cow.in and wrote to cow.out. From the December 2020 contest onward, USACO switched to terminal-based standard input and output — cin and cout in C++ — and each problem statement states which mode it uses. We cover the full syllabus behind these problems on the competition guide.
A local-testing gotcha
USACO grades in a UNIX environment: every line of your output — including the last one — must end with a single newline. A missing final newline is, in the organiser’s own words, perhaps the number-one reason for “it works on my system but not the contest server.” Worth checking every time you practise on an archived problem.
Season Index
Which seasons are in the USACO archive?
Each USACO season from 2015–16 through 2025–26 is listed below. Seasons up to 2024–25 ran three monthly contests (December, January, February) plus the March US Open; for 2025–26 USACO moved to three online contests in January and February followed by a proctored US Open. The input/output format flips at the December 2020 contest.
| Season | Contests in archive | I/O format |
|---|---|---|
| 2025–26 | 3 online · US Open | terminal I/O |
| 2024–25 | Dec · Jan · Feb · US Open | terminal I/O |
| 2023–24 | Dec · Jan · Feb · US Open | terminal I/O |
| 2022–23 | Dec · Jan · Feb · US Open | terminal I/O |
| 2021–22 | Dec · Jan · Feb · US Open | terminal I/O |
| 2020–21 | Dec · Jan · Feb · US Open | terminal I/O |
| 2019–20 | Dec · Jan · Feb · US Open | file I/O |
| 2018–19 | Dec · Jan · Feb · US Open | file I/O |
| 2017–18 | Dec · Jan · Feb · US Open | file I/O |
| 2016–17 | Dec · Jan · Feb · US Open | file I/O |
| 2015–16 | Dec · Jan · Feb · US Open | file I/O |
The same official archive also holds the earlier 2011–2015 seasons, complete with solutions. Open the archive on usaco.org
Training Method
How do you train with past USACO contests?
Work in your target division, set a real 4–5 hour timer, and attempt a full past contest the way you would on the day. Then grade yourself, read the official solution, and re-solve what you missed. Practising under real conditions — not just reading answers — is what moves your score.
Past contests are the most honest mock exam you have: same interface, same scoring out of 1000, same 333.33 points per problem across roughly ten test cases. Treat each archived set as a timed run rather than a reading exercise, and the gap between “I understood the solution” and “I could have written it” becomes obvious — that gap is exactly what training closes.
Because every archived problem ships with an official solution, you never get stuck for long. Attempt first, grade honestly, then study the write-up for the technique you were missing — and turn recurring gaps into a study list. For structured learning paths and book recommendations by division, see the resources hub.
UPSOLVE.PROTOCOL
while (missed_problem) { review(); implement_again(); }
Pick a target division
Practise at the division you are trying to promote into. Each contest page groups problems by Bronze, Silver, Gold and Platinum. See what each tests
Recreate the window
Set a 4–5 hour timer and take a full past set in one sitting, exactly as a real contest window would run.
Grade, then read
Score yourself honestly first. Only then open the official solution write-up that ships with every archived problem.
Re-solve from scratch
Close the solution, wait a few days, and re-write the problems you missed until the idea comes without prompting.
Log the topic
Note the technique that beat you — prefix sums, DFS, dynamic programming — and drill that, not just the single problem.
FAQ
Past contests — frequently asked questions
Quick, self-contained answers about the USACO archive and how to train with it. Every answer traces to the official contest instructions and archive at usaco.org.
Where can I find past USACO problems?
Every past USACO problem is in the official contest archive at usaco.org. It is free to open, organised by season, and each problem comes with an official solution. The archive covers all four divisions and reaches back to the 2011 season. This guide indexes those seasons and links to the official papers rather than rehosting them.
How far back does the USACO archive go?
The official usaco.org archive holds every season since 2011, complete with solutions. This page lists each season from 2015–16 through 2025–26 in detail, and the earlier 2011–2015 seasons sit in the same official archive.
Do past USACO contests come with solutions?
Yes. Every archived USACO contest ships with an official solution write-up, and the organisation provides hundreds of hours of free training material and historical problems complete with solutions. Reading the official solution after each honest attempt is the core of effective practice.
Why do old USACO problems use file input and output?
For contests before December 2020, solutions read from a file such as cow.in and wrote to cow.out. From the December 2020 contest onward, USACO switched to terminal-based standard input and output — for example cin and cout in C++. Each problem statement specifies which mode it uses, so check before you start an older set.
How should I train with past USACO contests?
Work in your target division, set a real 4–5 hour timer, and attempt a full past contest before checking anything. Then grade yourself and study the official solution. Re-solve the problems you missed a few days later, and keep a list of the specific topics that beat you rather than just the problems.
Is the USACO past-contest archive free?
Yes. The USA Computing Olympiad states there is never any fee for participation, and the historical problems, solutions and training material on usaco.org are all free to access. You only need a free usaco.org account to enter the live contests.