Past problems archive
A curated selection of recent USACO problems, one to three per division per season. Each entry gives the short problem premise, the key technique, the complexity target, and a link to the official PDF and editorial. For full problem statements always use the canonical source at usaco.org.
How to use this page. Find a problem at your level, open the official statement, give yourself
60 minutes, then come back here for the key idea — and only then read the official editorial.
🥉 Bronze · selected problems
| Season · Round | Problem | Key idea | Target complexity |
|---|---|---|---|
| 2024 December | Walking the Cows | Simulation + careful sorting | O(n log n) |
| 2024 January | Cowmpetency | Greedy + monotonic check | O(n) |
| 2024 February | Hoof Paper Scissors | Counting + small state DP | O(n) |
| 2024 US Open | The Lazy Cow | Coordinate-aware brute force | O(n²) |
| 2023 December | Cow College | Sort + scan; "for each price, how many can pay" | O(n log n) |
| 2023 January | Air Cownditioning II | Bitmask enumeration over fans | O(2ᵏ · n) |
| 2022 December | Cow College | Sort by price, sweep | O(n log n) |
🥈 Silver · selected problems
| Season · Round | Problem | Key idea | Target complexity |
|---|---|---|---|
| 2024 December | Cake Game | Two pointers / sliding window over a circular array | O(n) |
| 2024 January | Cannonade | Prefix sums on event differences | O(n) |
| 2024 February | Spore Carry | BFS / shortest path with parity | O(n) |
| 2024 US Open | Smaller Averages | Binary search on the answer | O(n log U) |
| 2023 December | Target Practice | Coordinate compression + simulation | O(n log n) |
| 2023 January | Air Cownditioning II | Bitmask + prefix difference array | O(2ᵏ · n) |
| 2022 December | Circular Barn | Greedy on a circular array; try each start | O(n²) or O(n log n) |
🥇 Gold · selected problems
| Season · Round | Problem | Key idea | Target complexity |
|---|---|---|---|
| 2024 December | Cake Game | DP over interval halves; observe symmetry | O(n) |
| 2024 January | Mooball | Tree DP + rerooting | O(n) |
| 2024 February | Milk Exchange | Monotonic stack + sweep | O(n) |
| 2024 US Open | Smaller Averages | Interval DP with prefix sums | O(n³) |
| 2023 December | Cow Roller Coaster | Dijkstra on layered states | O((n+m) log n) |
| 2022 December | Strongest Friendship Group | Greedy + sorted edge addition; offline DSU | O(m log m + m α) |
| 2022 February | Counting Graphs | Combinatorics + small case enumeration | O(n) |
💎 Platinum · stretch reading
Reach problems for after you've cleared Gold. Don't grind these as a Bronze/Silver student — read one and understand the editorial as exposure to advanced ideas.
| Season · Round | Problem | Key idea | Notable structure |
|---|---|---|---|
| 2024 December | Cake Game | Heavy-light + segment tree on Euler tour | HLD |
| 2024 January | Mooball Madness | Treap + small-to-large merging | Persistent / treap |
| 2023 December | Tree Tour | Centroid decomposition + offline queries | Centroid |
| 2023 February | Watching Cowflix | Convex hull trick on tree DP | CHT + tree DP |
| 2022 December | Letter Bag | FFT / NTT on generating functions | FFT |
How a "problem study session" should look
- Read the official statement twice. The second pass, write down the input/output format and constraints in your own words.
- Identify the constraint bracket. n ≤ 20? n ≤ 10⁵? That alone narrows the algorithm family.
- Brainstorm 1–2 ideas on paper. Don't open an editor yet.
- Code your best idea. Test on samples, then on a hand-crafted edge case.
- If WA/TLE, debug with prints or a brute checker. Don't randomly tweak.
- Once accepted (or after ~60 min stuck), read the editorial. Note what they did differently.
- Re-implement the editorial's approach without looking. That's where the learning sticks.