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

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

Round metadata

ContestUSACO 2020 February
WindowFeb 21–24, 2020 (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. Triangles — pick three fence posts forming a right triangle with legs axis-aligned; maximize area. O(N²) brute search.

2. Mad Scientist — convert string A into string B by reversing contiguous substrings; count the minimum number of reversals (count maximal blocks of mismatches).

3. Swapity Swap — apply two fixed reversal "shuffles" K times to a cow line; cycle decomposition (K up to 10⁹).

Open Bronze write-up →
Silver

Silver · 3 problems

1. Swapity Swapity Swap — same shuffle but with N up to 10⁵ and K up to 10⁹: use cycle decomposition + modular indexing.

2. Triangles — Silver version with N up to 10⁵; sum of area over all valid right triangles using per-row/column prefix sums.

3. Clock Tree — clock values mod 12 on a tree; bipartite parity check tells you whether the puzzle is solvable.

Open Silver write-up →
Gold

Gold · 3 problems

1. Timeline — DAG longest path on event constraints (sj − si ≥ g); topological-order relaxation.

2. Help Yourself — sum of 2components over all 2N subsets of intervals; sweep + DP doubling.

3. Delegation — for each K, decide if a tree's edges can be partitioned into vertex-disjoint paths of length exactly K; greedy on rooted subtrees.

Open Gold write-up →
Platinum

Platinum · 3 problems

1. Delegation — Platinum version: for each K answer whether the tree admits a partition into paths of length K (multiset greedy per subtree, harmonic sum bound).

2. Equilateral Triangles — count axis-aligned-Manhattan equilateral triangles among N grid points; rotate 45° + counting by pair distances.

3. Help Yourself — Platinum version: sum of f(S)K over subsets where f is the # connected components; sweep-line + polynomial DP in K.

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.