usaco.org/index.php?page=viewproblem2&cpid=…, cpids 567–578).
Round metadata
| Contest | USACO 2015 December |
|---|---|
| Window | December 2015, 4-day window, single 4-hour personal timer |
| Length per division | 4 hours (Dec/Jan/Feb format; US Open is the 5-hour round) |
| Problems per division | 3 |
| Total problems | 12 (Bronze 1–3, Silver 1–3, Gold 1–3, Platinum 1–3) |
| Scoring | IOI-style partial credit, 1000 points per problem, 3000 max per division |
| Allowed languages | C, C++11, Java, Python 2.7, Python 3 (C++11 was the default at the time) |
| Promotion cutoffs | Set per-contest by USACO; check the results page for exact thresholds. |
| Note | December 2015 is historically significant as the first contest with a Platinum division (the new top tier above Gold). |
The contest at a glance
Bronze · 3 problems
1. Fence Painting — union length of two intervals [a,b] and [c,d] on a 0–100 fence.
2. Speeding Ticket — overlay two segmentations of a 100-mile road; maximum overage of actual speed vs limit.
3. Contaminated Milk — among milks each sick cow drank before falling ill, pick the one that maximizes the count of total drinkers (worst case sick count).
Silver · 3 problems
1. Switching on the Lights — BFS with retry: rooms become reachable only after their light is switched on; iterate to a fixed point.
2. High Card Wins — Elsie's order is known; greedily play Bessie's smallest card that still beats Elsie's current card.
3. Breed Counting — prefix sums over three breed indicator arrays answer Q range-count queries in O(1).
Gold · 3 problems
1. High Card Low Card (Gold) — first N/2 rounds reward high cards, last N/2 reward low cards; greedy per half on sorted hands.
2. Fruit Feast — reachable-fullness BFS up to T ≤ 5·10⁶ with an optional one-time halving; two passes (before/after water).
3. Bessie's Dream — shortest path on a grid with stateful tiles (smell on/off, purple sliders); 0-1 BFS over (row, col, smell) states.
Platinum · 3 problems
1. Max Flow — K paths on a tree; max number of paths through any node via LCA + tree difference arrays.
2. High Card Low Card (Platinum) — Bessie may switch from high-wins to low-wins at most once; DP on sorted hands with O(N log N) merge.
3. Counting Haybales — N ≤ 200,000 with range add, range min, range sum: classic lazy-propagation segment tree.
How to use this set
- Pick your division. Open the full division page and read the three statements before writing any code.
- Solve P1 first, P2 if time, P3 only if you're cruising. December problem 1s are usually the cheapest points.
- Time-box. 4 hours total. Don't spend more than ~90 minutes on a single problem without a working subtask submission.
- 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.
- Verify with the editorial. Official editorials are linked from each problem page on usaco.org.