USACO 2016 January — the whole contest, all four divisions.

Every USACO round is 4 divisions × 3 problems = 12 problems total. This page indexes the January 2016 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. The January 2016 set is famous for the "Angry Cows" trilogy that appears across Bronze, Silver, and Gold — the same setup with progressively harder constraints.

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

Round metadata

ContestUSACO 2016 January
WindowRoughly Jan 22–25, 2016 (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, Pascal, 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. Promotion Counting — from per-division before/after head counts, recover the number of promotions across each adjacent boundary (linear algebra of conservation).

2. Angry Cows — pick one bale on a number line so the expanding-radius chain reaction detonates as many bales as possible (simulate from each).

3. Mowing the Field — given an NSEW path, find the maximum regrowth time T such that no cell is revisited within T (track first-visit time per cell).

Open Bronze write-up →
Silver

Silver · 3 problems

1. Angry Cows — with K cows of equal radius R, find the minimum R so K well-placed shots cover all bales (binary search + greedy).

2. Subsequences Summing to Sevens — longest contiguous subarray whose sum ≡ 0 (mod 7) (prefix sums + first-occurrence table).

3. Build Gates — number of regions the fence path partitions the plane into (Euler's formula on the path graph).

Open Silver write-up →
Gold

Gold · 3 problems

1. Angry Cows — chain-reaction version: one shot at power R triggers radius-(R−1) blasts, etc. Minimum R such that one placement detonates all (two-pointer + DP).

2. Radio Contact — FJ and Bessie walk fixed paths; at each tick each may step or wait. Minimise Σ squared distance (2D DP on path indices).

3. Lights Out — rectilinear polygon; Bessie must reach vertex 1 in the dark using only turn directions to localise. Find the worst-case extra distance (KMP-like matching on signed-turn string).

Open Gold write-up →
Platinum

Platinum · 3 problems

1. Fort Moo — largest axis-aligned rectangle in an N×M grid whose border (one-meter frame) avoids all 'X' cells (per-row maximal runs + sweep on top row pairs).

2. Mowing the Field — Platinum version: count perpendicular crossings between segments separated by ≥ T mowing days (offline BIT on coordinate-compressed events).

3. Lights Out — Platinum version of Gold P3 with N up to 200 vertices and tighter optimality requirements (full O(N²) signal-disambiguation DP).

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. January 2016 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.