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

Every USACO round is 4 divisions × 3 problems = 12 problems total. This page indexes the December 2019 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 2019 results page on usaco.org: usaco.org/index.php?page=dec19results. Each problem links to its official statement (statements live at usaco.org/index.php?page=viewproblem2&cpid=…, cpids 963–974).

Round metadata

ContestUSACO 2019 December
Window4-day window in mid-December 2019, 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
Promotion cutoffsSet per-contest by USACO; check the results page for exact thresholds.

The contest at a glance

Bronze

Bronze · 3 problems

1. Cow Gymnastics — count pairs of cows whose relative order is the same in every session (N² · K check).

2. Where Am I? — smallest window length such that every length-K substring of a color string is unique.

3. Livestock Lineup — find lexicographically smallest order of 8 cows satisfying adjacency constraints (brute permutation).

Open Bronze write-up →
Silver

Silver · 3 problems

1. MooBuzz — Nth integer not divisible by 3 or 5 (closed form on period 15).

2. Meetings — cows on a line walking and bouncing; compute when total weight on the right end reaches half (sort + suffix count + sort-by-T trick).

3. Milk Visits — tree with H/G nodes; for each query (a, b, c) decide if path a–b contains type c (small-to-large or DSU offline).

Open Silver write-up →
Gold

Gold · 3 problems

1. Milk Pumping — enumerate the minimum edge capacity, run Dijkstra ignoring weaker edges, maximize cap / cost (M·Dijkstra).

2. Milk Visits — general graph version of Silver Milk Visits with arbitrary per-node milk types (small-to-large / offline DSU).

3. Moortal Cowmbat — change a string of 26 letters in length-≥K runs to minimize edit cost (DP + prefix mins, all-pairs shortest paths on letters).

Open Gold write-up →
Platinum

Platinum · 3 problems

1. Greedy Pie Eaters — interval DP: best total weight when cows eat ranges of pies (O(N³)).

2. Bessie's Snow Cow — color subtree operations with set-of-intervals on Euler tour; sum-of-colors queries with Fenwick.

3. Tree Depth — sum of depths of position k over all permutations with K inversions (generating functions / DP with rolling window).

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.