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

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

Round metadata

ContestUSACO 2018 December
WindowRoughly Dec 14–17, 2018 (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. Mixing Milk — simulate 100 cyclic pours among 3 buckets, each pour limited by source/destination capacity.

2. The Bucket List — minimum simultaneous buckets needed across cow milking intervals (sweep line over events).

3. Back and Forth — enumerate the 4-trip bucket choices between two barns; count distinct final tank values (DFS over states).

Open Bronze write-up →
Silver

Silver · 3 problems

1. Convention — M buses of capacity C must pick up N cows; binary search on max wait time.

2. Convention II — seniority-ordered priority queue scheduling; simulate to find max wait.

3. Mooyo Mooyo — Puyo-style cascading: flood-fill, drop, repeat until stable.

Open Silver write-up →
Gold

Gold · 3 problems

1. Fine Dining — each of N-1 cows decides if a yumminess-discounted detour to a haybale still gets her home in shortest time (two Dijkstras).

2. Cowpatibility — count cow pairs sharing no ice-cream flavor; inclusion–exclusion on 5-flavor subsets.

3. Teamwork — partition a line of cows into groups of size ≤ K; each group's skills become its max; maximize sum (1-D DP).

Open Gold write-up →
Platinum

Platinum · 3 problems

1. Balance Beam — optimal stopping on a random walk: expected payoff = upper concave envelope of f.

2. Sort It Out — count K-th lex-smallest minimal subset whose "yelling" sorts the array; LIS + digit-DP.

3. The Cow Gathering — given a tree and topological constraints, decide which nodes can be the unique last-remaining cow.

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.