usaco.org/index.php?page=viewproblem2&cpid=…, cpids 987–998).
Round metadata
| Contest | USACO 2020 January |
|---|---|
| Window | Roughly Jan 24–27, 2020 (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, C++17, Java, Python 2.7, Python 3.6 (C++17 is the default for serious climbers) |
| Promotion cutoffs | Set per-contest by USACO; check the results page for exact thresholds. |
The contest at a glance
Bronze · 3 problems
1. Word Processor — greedy line wrapping: pack words left to right without exceeding width K.
2. Photoshoot — reconstruct a permutation given the sums ai+ai+1 with a1 fixed by parity logic.
3. Race — simulate Bessie's run with target speed K and energy budget, output min/max possible track length.
Silver · 3 problems
1. Berry Picking — distribute berries from N trees into K baskets of equal size, maximize Bessie's K/2 smaller baskets (binary-search / enumerate basket size).
2. Loan Repayment — find max X such that a daily-floor-divide loan repayment scheme finishes in ≤ K days (binary search, decay simulation).
3. Wormhole Sort — max weight W such that edges with weight ≥ W let every cow reach its sorted position (DSU offline / binary search on edges).
Gold · 3 problems
1. Time is Mooney — DAG longest path with reward cv per visit minus T·t cost; DP over (day, node) bounded by 1000 days.
2. Farmer John Solves 3SUM — precompute count of unordered pairs (i,j) with ai+aj = 0 for every subarray; 2D prefix sums after an O(N²) pair sweep.
3. Springboards — min "wasted" Manhattan distance from (0,0) to (X,Y) with N springboards (DP after coordinate sort, BIT for prefix max).
Platinum · 3 problems
1. Falling Portals — N planets fall at constant rates; for each i find earliest reachable lower planet via portal hops (convex hull trick / divide and conquer).
2. Cave Paintings — count ways to flood-fill a grid such that all painted regions stay connected (Kruskal-style tree DP on connected components).
3. Non-Decreasing Subsequences — for Q range queries [l,r], count non-decreasing subsequences in a[l..r] modulo a prime (segment tree of K×K matrices).
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.