USACO 2021 February — the whole contest, all four divisions.

Every USACO round is 4 divisions × 3 problems = 12 problems total. This page indexes the February 2021 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 February 2021 results page on usaco.org: usaco.org/index.php?page=feb21results. Each problem links to its official statement (cpids 1107–1118).

Round metadata

ContestUSACO 2021 February
WindowRoughly Feb 26 – Mar 1, 2021 (4-day window, 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, C++17, Java, Python 2.7, Python 3.6 (C++17 is the default for serious climbers)
Promotion cutoffsSet per-contest by USACO; check the results page for exact thresholds.

The contest at a glance

Bronze

Bronze · 3 problems

1. Year of the Cow — chain zodiac-cycle relationships to compute the age difference between two cows (simulation on a 12-cycle).

2. Comfortable Cows — add cows one by one to a grid; after each, count cows with exactly three orthogonal neighbors.

3. Clockwise Fence — given a closed N/E/S/W walk, decide whether it traces its enclosed region clockwise or counter-clockwise (signed area).

Open Bronze write-up →
Silver

Silver · 3 problems

1. Comfortable Cows — Silver upgrade: keep adding "stabilising" cows so none has exactly three neighbours; report the cumulative count after each step (flood-fill propagation).

2. Year of the Cow — visit N ancestors using at most K time-portal jumps of size 12 years; minimise total years travelled (greedy on gap savings).

3. Just Green Enough — count rectangles whose minimum value is exactly 100 (inclusion–exclusion: ≥100 minus ≥101, both via histogram counting).

Open Silver write-up →
Gold

Gold · 3 problems

1. Stone Game — divisibility-chain take-away game; count Bessie's winning first moves (Sprague–Grundy on (pile, last-move) states).

2. Modern Art 3 — minimum number of interval paint strokes to reproduce a target array of colours (interval DP).

3. Count the Cows — count cows in a Sierpinski-style 3-adic fractal on a diagonal segment up to 1018 (digit DP in base 3).

Open Gold write-up →
Platinum

Platinum · 3 problems

1. No Time to Dry — minimum brush strokes to paint a query subarray, given you can't lay lighter over darker (segment tree of distinct colours by next-occurrence).

2. Minimizing Edges — rebuild G with fewest edges that preserves the parity-reachability function fG(a, b) (BFS-bipartition + cycle parity classes).

3. Counting Graphs — count graphs G' with the same fG(a, b) function modulo 109+7 (combinatorics on BFS layers).

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