usaco.org/index.php?page=viewproblem2&cpid=…, cpids 687–698).
Round metadata
| Contest | USACO 2017 January |
|---|---|
| Window | Roughly Jan 13–16, 2017 (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 (the 2017 ruleset; C++17 came later) |
| Promotion cutoffs | Set per-contest by USACO; check the results page for exact thresholds. |
The contest at a glance
Bronze · 3 problems
1. Don't Be Last! — among 7 named cows with milking logs, find the cow with the second-smallest total (or "Tie").
2. Hoof, Paper, Scissors — given two cows' gesture sequences over N rounds, pick the best 1-to-3 ↔ HPS mapping (try all 6 permutations).
3. Cow Tipping — minimum number of upper-left-rectangle XOR flips to clear an N×N grid (N ≤ 10); greedy bottom-up.
Silver · 3 problems
1. Cow Dance Show — smallest stage size K such that an N-cow show finishes by T_max; binary search + min-heap simulation.
2. Hoof, Paper, Scissors — Silver flavor: Bessie may switch her gesture at most once over N rounds; prefix counts of H/P/S.
3. Secret Cow Code — query the N-th (N ≤ 1018) character of a string doubled-and-right-rotated forever; recurse on halves.
Gold · 3 problems
1. Balanced Photo — for each i, count cows on each side taller than hi; flag "unbalanced" when max > 2·min. BIT over coordinate-compressed heights.
2. Hoof, Paper, Scissors — Gold flavor: up to K ≤ 20 switches; DP[i][k][g] = best wins through round i, k switches used, current gesture g.
3. Cow Navigation — shortest instruction list that works regardless of starting orientation; BFS on (posA, dirA, posB, dirB) joint state.
Platinum · 3 problems
1. Promotion Counting — for every node in a rooted tree, count descendants with higher value; offline Euler tour + Fenwick / merging indexed sets.
2. Building a Tall Barn — split K workers (up to 1012) across N floors to minimize Σ ai/ci; priority queue on marginal gain.
3. Subsequence Reversal — N ≤ 50; reverse one subsequence to maximize LIS. O(N4) DP on four monotone pointers.
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.