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

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

Round metadata

ContestUSACO 2017–2018 January (second contest of the season)
Window4-day window in late January 2018, 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++17 added in later seasons)
Participants~2,782 across 66 countries (Bronze 1497, Silver 1077, Gold 609, Platinum 472)
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 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).

Open Bronze write-up →
Silver

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).

Open Silver write-up →
Gold

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).

Open Gold write-up →
Platinum

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).

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