usaco.org/index.php?page=viewproblem2&cpid=…, cpids 1035–1046).
Round metadata
| Contest | USACO 2020 US Open (season finals) |
|---|---|
| Window | Late March / early April 2020, 4-day window with a single 5-hour personal timer |
| Length per division | 5 hours (US Open is the long round; Dec/Jan/Feb are 4 hours) |
| 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, C++17, Java, Python 2.7, Python 3.6 (C++17 is the default at Gold/Platinum) |
| Finals significance | Final round of the 2019–20 season. Combined performance across all four rounds decides invitations to summer training camp, where the four-person US IOI team is selected. |
| Theme | COVID-era contest — Bronze and Silver problem 1s are all "Social Distancing" variants, and Bronze 3 is "Cowntact Tracing." |
| Promotion cutoffs | Set per-contest by USACO; check the results page for exact thresholds. |
The contest at a glance
Bronze · 3 problems
1. Social Distancing I — place K cows in disjoint stall intervals to maximize the minimum pairwise distance (binary search on D).
2. Social Distancing II — given positions and infection states on a line, find the smallest infection radius R consistent with the data.
3. Cowntact Tracing — simulate timed pairwise handshakes and bound the count of possible patient zeros and infection chains (brute force over candidates).
Silver · 3 problems
1. Social Distancing — Silver version: K cows into M disjoint intervals on the line maximizing min distance (binary search + greedy placement).
2. Cereal — each cow has a 1st and 2nd cereal choice; for each k count cows served when only cows k..N−1 line up (Union-Find / chain compression).
3. The Moo Particle — particles with (x, y) spins; pairs annihilate iff xi ≤ xj ∧ yi ≤ yj. Minimum remaining = sort + count y-descents.
Gold · 3 problems
1. Haircut — for every length j compute the number of inversions in the array after capping every value at j (Fenwick on values).
2. Favorite Colors — repeatedly merge nodes that share an in-neighbor until stable; output the canonical color labels (Union-Find + worklist).
3. Exercise — sum over all permutations of N of the LCM of cycle lengths, modulo M (DP over partitions of N by prime powers).
Platinum · 3 problems
1. Sprinklers 2: Return of the Alfalfa — count ways to split an N×N grid into a "left/down sprinkler" region and a "right/up sprinkler" region around an alfalfa rectangle (row-DP with prefix sums).
2. Exercise — Platinum: same LCM-sum but over N ≤ 104, modulo M (prime-power knapsack DP).
3. Circus — count distinct rooted "stretchings" of a tree where K cows ride on K vertices and inner cows can slide along edges (tree DP).
How to use this set
- Pick your division. Open the full division page and read all three statements before writing any code — 5 hours rewards a calm reading sweep first.
- Order the attack. US Open P1 is usually the cheapest problem; P3 is almost always the hardest. Solve in order unless P2 obviously matches a pattern you already know.
- Time-box. 5 hours total. Don't sink more than ~2 hours into a single problem without at least the easiest subtask submission banked.
- Compare to the reference C++. Each problem has a ~30–50 line reference (Platinum can go 60–80). If yours is much longer, ask why.
- Verify with the editorial. Official editorials are linked from each problem page on usaco.org.