USACO 2020 December — the whole contest, all four divisions.

Every USACO round is 4 divisions × 3 problems = 12 problems total. This page indexes the December 2020 round end-to-end: Bronze through Platinum, with the official statement link, the key idea, complexity target, and a runnable C++ reference for each problem on the per-division pages.

Bronze (all 3) → Silver (all 3) → Gold (all 3) → Platinum (all 3) →
Authoritative source. All problem titles, constraints, and results below are taken from the official December 2020 results page on usaco.org: usaco.org/index.php?page=dec20results. Each problem links to its official statement (statements live at usaco.org/index.php?page=viewproblem2&cpid=…, cpids 1059–1070).

Round metadata

ContestUSACO 2020 December
WindowRoughly Dec 18–21, 2020 (4-day window, single 4-hour personal timer)
Length per division4 hours (Dec/Jan/Feb format; US Open is the 5-hour round)
Problems per division3
Total problems12 (Bronze 1–3, Silver 1–3, Gold 1–3, Platinum 1–3)
ScoringIOI-style partial credit, 1000 points per problem, 3000 max per division
Allowed languagesC, C++11, C++17, Java, Python 2.7, Python 3.6 (C++17 is the default for serious climbers)
Promotion cutoffsSet per-contest by USACO; check the results page for exact thresholds.

The contest at a glance

Bronze

Bronze · 3 problems

1. Do You Know Your ABCs? — recover the seven sums of all non-empty subsets of {A,B,C} from a noisy 7-number list; deduce A,B,C.

2. Daisy Chains — count subarrays whose average equals one of its own elements (sum-vs-length scan).

3. Stuck in a Rut — cows on a grid walking N or E forever; compute how far each travels before stopping (sweep on N+E coordinates).

Open Bronze write-up →
Silver

Silver · 3 problems

1. Cowntact Tracing — given infection trace, find which cows could have been patient zero and the maximum number of transmissions (BFS / simulation).

2. Rectangular Pasture — count axis-aligned rectangles bounded by chosen cow subsets among N points (prefix sums in 2D).

3. Stuck in a Rut — silver version: same N/E rule, output how far each cow travels (event sweep + sorted sets).

Open Silver write-up →
Gold

Gold · 3 problems

1. Cowntagion — minimum number of "doublings + travels" on a tree to infect every node from the root (greedy per subtree).

2. Replication — single robot replicates and spreads through a grid with rocky walls; BFS in time-dilated state space.

3. Stuck in a Rut — gold version: report which cows make it infinitely far (collision dependency DAG).

Open Gold write-up →
Platinum

Platinum · 3 problems

1. Sleeping Cows — match sleeping cows to barns where barn capacity ≥ cow size; count matchings mod p (sort + DP).

2. Bovine Genetics — count strings whose decoding into segments of equal letters matches a constrained pattern (digit DP / state DP).

3. Spaceship — robot on a graph executes a program substring; precompute transition matrices over substrings (matrix product on segment tree).

Open Platinum write-up →

How to use this set

  1. Pick your division. Open the full division page and read the three statements before writing any code.
  2. Solve P1 first, P2 if time, P3 only if you're cruising. December problem 1s are usually the cheapest points.
  3. Time-box. 4 hours total. Don't spend more than ~90 minutes on a single problem without a working subtask submission.
  4. Compare to the reference C++. Each problem on the division page has a ~30–50 line reference solution. If yours is much longer, ask why.
  5. Verify with the editorial. Official editorials are linked from each problem page on usaco.org.