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

Every USACO round is 4 divisions × 3 problems = 12 problems total. This page indexes the December 2017 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. This was the first contest of the 2017–18 season.

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 2017 results page on usaco.org: usaco.org/index.php?page=dec17results. Each problem links to its official statement (statements live at usaco.org/index.php?page=viewproblem2&cpid=…, cpids 759–770).

Round metadata

ContestUSACO 2017 December
WindowRoughly Dec 8–11, 2017 (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, Java, Python 2.7, Python 3 (C++ 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. Blocked Billboard — two rectangular signs may overlap a billboard; compute the visible (uncovered) area.

2. The Bovine Shuffle — apply a fixed permutation to a row of N cows three times; output the resulting order.

3. Milk Measurement — simulate per-day milk-output adjustments and track who is currently the top producer.

Open Bronze write-up →
Silver

Silver · 3 problems

1. My Cow Ate My Homework — for each suffix-drop K, find the K maximizing the average of remaining scores after dropping the lowest.

2. Milk Measurement — same scenario as Bronze 3 but larger N/events; track when the leader-set changes.

3. The Bovine Shuffle — given a shuffle permutation applied indefinitely, count positions that remain occupied forever (cycle nodes).

Open Silver write-up →
Gold

Gold · 3 problems

1. A Pie for a Pie — Bessie/Elsie trade pies; find shortest "acceptable chain" for each starting pie (BFS on bipartite layers).

2. Barn Painting — count 3-colorings of a tree with pre-assigned colors on some nodes (tree DP mod 1e9+7).

3. Haybale Feast — minimum-window over a sequence whose flavor-sum ≥ M, maximizing spiciness (sliding window + monotonic deque).

Open Gold write-up →
Platinum

Platinum · 3 problems

1. Standing Out from the Herd — for each string, count substrings unique to it among all strings (generalized suffix automaton).

2. Push a Box — Sokoban-style: can a single box be pushed from S to T given the farmer must walk around it? (BFS on (box, side-of-farmer) states).

3. Greedy Gift Takers — cows queue and pick gifts greedily; count how many never receive one (binary search on cutoff).

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.