usaco.org/index.php?page=viewproblem2&cpid=…, cpids 783–794).
Round metadata
| Contest | USACO 2017–2018 January (second contest of the season) |
|---|---|
| Window | 4-day window in late January 2018, 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++17 added in later seasons) |
| Participants | ~2,782 across 66 countries (Bronze 1497, Silver 1077, Gold 609, Platinum 472) |
| Promotion cutoffs | Set per-contest by USACO; check the results page for exact thresholds. |
The contest at a glance
Bronze · 3 problems
1. Blocked Billboard II — one rectangular billboard, one rectangular truck (which must cover a full side); compute the visible area.
2. Lifeguards — N lifeguard shifts as intervals; fire exactly one to maximize total covered time.
3. Out of Place — minimum number of swaps so the herd is sorted by height (count out-of-place elements).
Silver · 3 problems
1. Lifeguards — Silver version: fire exactly K lifeguards to maximize covered time (DP over sorted intervals).
2. Rental Service — sell milk vs. rent cows: greedy on highest unit price first (sort + two-pointer).
3. MooTube — offline queries: count videos reachable on edges with weight ≥ K (sort edges + DSU).
Gold · 3 problems
1. MooTube — Gold version: offline queries on a tree; sort edges + DSU sized-merge to answer "component size at threshold K".
2. Cow at Large — Bessie at root tries to escape to any leaf before farmers (one per node) intercept; BFS distances + greedy cut count.
3. Stamp Painting — count length-N color strings with K colors that are reachable by overstamping length-M stamps (closed-form DP).
Platinum · 3 problems
1. Lifeguards — Platinum: fire exactly K of N lifeguards to maximize covered time (DP + monotonic deque).
2. Cow at Large — Platinum: Bessie can start at any node; for each starting node output the minimum farmers needed (tree DP + rerooting).
3. Sprinklers — count axis-aligned rectangles enclosing a "sprinkler" point that satisfy a corner-monotonicity constraint (sweep + math sum).
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. January 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.