USACO 2017 US Open — the finals round, all four divisions.

The US Open is the last contest of the USACO season — the 5-hour finals that gate the camp invitation pipeline. This page indexes the 2017 US Open 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 → Platinum (all 3) →
Authoritative source. All problem titles, constraints, and results below are taken from the official 2017 US Open results page on usaco.org: usaco.org/index.php?page=open17results. Each problem links to its canonical statement on usaco.org/index.php?page=viewproblem2&cpid=… (cpids 735–746). Note: the Gold division ran with two scored problems — one of the originally planned Gold problems was revoked mid-contest because an algorithmic flaw invalidated the intended solution.

Round metadata

ContestUSACO 2017 US Open
Window4-day contest window in spring 2017
Length per division5 hours (US Open is the long finals round; the Dec/Jan/Feb regular-season rounds are 4 hours)
SignificanceFinal contest of the season — results plus regular-season scores determine invitations to the USACO summer training camp (USACO Camp / "Open Camp")
Problems per division3 in Bronze, Silver, Platinum — 2 in Gold after a problem was revoked mid-contest
Total scored problems11
ScoringIOI-style partial credit, 1000 points per problem
Allowed languagesC, C++11, Java, Python 2.7, Python 3
Promotion cutoffCompetitors who scored at least 750 in a division were automatically promoted to the next level for subsequent contests

The contest at a glance

Bronze

Bronze · 3 problems

1. The Lost Cow — simulate a zigzag search of doubling step lengths until the searcher passes the target.

2. Bovine Genomics — count positions where a single column perfectly separates spotty cows from plain cows.

3. Modern Art — how many of the 9 visible colors could have been painted first on an N×N canvas of overlapping rectangles.

Open Bronze write-up →
Silver

Silver · 3 problems

1. Paired Up — minimum total milking time when pairing cows; greedy two-pointer on sorted outputs (the "M up to 109" version).

2. Bovine Genomics — count triples of positions whose combined characters perfectly separate the two groups.

3. Where's Bessie? — enumerate all rectangular PCLs in a 26-color grid; flood-fill checks per rectangle.

Open Silver write-up →
Gold

Gold · 2 scored problems

1. Bovine Genomics — smallest set of positions that distinguishes spotty from plain cows; randomized / hash-set probing.

2. Modern Art 2 — 1D layered intervals; decide if a target coloring is achievable and find the minimum number of paint rounds.

A third Gold problem was withdrawn mid-contest after an algorithmic flaw was identified.

Open Gold write-up →
Platinum

Platinum · 3 problems

1. Modern Art — for each color, prove via bounding boxes whether it could be the bottom-most layer; sweep + 2D checks.

2. Switch Grass — dynamic min-edge-between-different-colors on a graph after recolor updates; MST + small-label per-node multiset.

3. COWBASIC — interpret a toy language with nested MOO loops; matrix exponentiation over the assignment vector.

Open Platinum write-up →

How to use this set

  1. Pick your division. Open the full division page and read all the statements before writing any code.
  2. Solve P1 first, P2 if time, P3 only if you're cruising. US Open problem 1s are usually still cheap; the 5-hour budget is so you can finish P2 cleanly.
  3. Time-box. 5 hours total. Don't spend more than ~120 minutes on a single problem without a working subtask submission.
  4. Compare to the reference C++. Each problem on the division page has a short 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.