Introduction to USACO
The USA Computing Olympiad (USACO) is a free, largely online programming competition for middle and high school students. It is open to students worldwide, and its low barrier to entry, no registration fee and no travel for the monthly rounds, has made it a popular choice for students who want to develop and demonstrate strong algorithmic skills. In recent seasons the organizers have changed several parts of the contest’s format and score certification, so it is worth understanding the current rules before you begin. A steady, structured approach to preparation is the most reliable way to progress toward the Gold and Platinum divisions.
01 USACO Competition Format
USACO stands for the USA Computing Olympiad, one of the main routes into competitive programming for secondary-school students. The International Olympiad in Informatics (IOI) has been held each year since 1989, and every participating country runs its own selection process to choose its national team. In the United States, that selection runs through USACO, which is why the contest is closely followed by students interested in algorithms and programming.
Eligibility
USACO’s online contests and training resources are open to pre-college students worldwide, with no fee to participate. One detail matters for international students: anyone may compete online and earn a division ranking, but only pre-college students in the United States are eligible for training-camp (finalist) selection and for the US IOI and EGOI teams. Complete beginners are welcome and start in the Bronze division.
Participation Method
Registration is free. Create an account on the official USACO website and enter any open contest window. The three monthly contests are taken online from home. Note that, as of the 2025-26 season, the US Open championship moved to a proctored, in-person format at designated sites, which is covered under the rule changes below.
Programming Languages
USACO accepts four languages: C, C++, Java, and Python. C++ is the most common choice among competitive programmers and is the only language supported at the IOI, so it is the recommended language for the higher divisions. Python is a good starting point for beginners and is sufficient for every Bronze problem, but on some harder problems in the upper divisions its slower running speed can make it difficult to pass all test cases within the time limit.
Season Schedule
A typical season has three monthly online contests followed by the US Open. The monthly rounds run from roughly late December or January through February, with the US Open in late March. For reference, the 2025-26 season ran on these dates:
- First contest: January 9-12, 2026
- Second contest: January 30 – February 2, 2026
- Third contest: February 20-23, 2026
- US Open: March 28, 2026 (proctored, in person)
The organizers publish exact dates for each season on the official website, so confirm them there before planning your preparation.
Advancement Rules
Each monthly contest is open for about four days. You may choose when to start within that window, and once you begin, the timer runs for a fixed block of 4-5 continuous hours. In that time you work on the problems for your division, typically three, for a maximum of 1000 points, with each problem worth about 333.33 points.
You receive grading feedback shortly after each submission, and any of the four supported languages may be used. Promotion is based on your score: if you finish above the promotion cutoff for that contest, you move up to the next division for future contests. Cutoffs vary from contest to contest; in recent seasons the monthly cutoffs have most often fallen in the 650-750 range. A perfect score of 1000 earns an immediate promotion, and a contestant who reaches it may begin the next division’s problems within the same contest window.
Selection for the training camp and the US teams is limited to pre-college students in the United States.
02 USACO Divisions and Content
USACO has four divisions, Bronze, Silver, Gold, and Platinum, that increase in difficulty. All new competitors begin in Bronze and move up by clearing each division’s promotion cutoff. Each division emphasizes a different set of skills:
- Bronze: The entry level. It focuses on basic programming literacy and straightforward problem solving, including simulation, brute force, sorting, and simple logic. It is a good starting point for students who are new to competitive programming.
- Silver: Introduces common algorithms and techniques, including greedy algorithms, binary search, prefix sums, and graph traversal such as depth-first search (DFS).
- Gold: Where more advanced algorithms come in, including dynamic programming, graph theory and shortest paths, and efficient data structures such as union-find.
- Platinum: The top division. It emphasizes advanced modeling and algorithmic problem solving, with no fixed syllabus and no upper bound on difficulty; segment trees and advanced dynamic programming are typical. It is the level reached by the strongest high-school competitors.
03 Who Should Participate in USACO?
Interest in USACO has grown alongside programming education more broadly. A strong result, reaching the Gold or Platinum division, is a meaningful demonstration of algorithmic skill for students applying to competitive computer science and STEM programs. Beyond applications, programming is a durable and widely useful skill: much as learning a language is really about communication, learning to program is about solving problems and working effectively with computers.
USACO tends to suit:
- Students with some Python or C++ experience who want to build their skills toward the Silver and Gold divisions.
- Students planning to study computer science, AI, mathematics, or software engineering who want a recognized way to show their ability.
- Students already active in competitive programming who want an internationally recognized online contest to work toward.
- Students who enjoy logical problem solving and want to strengthen their reasoning and problem-decomposition skills, which carry over to subjects like mathematics and physics.
04 Recent USACO Rule Changes
Over the 2025-26 season the organizers introduced several changes that affect scoring, score certification, and team selection. If you are preparing for the upper divisions, these are the most important to know:
- The US Open is now proctored and in person. The season’s three monthly contests remain online, but the US Open championship is held in a proctored format at designated sites rather than online.
- Certified-score timing for Gold and Platinum. Gold and Platinum contestants who want an officially certified score must start on Saturday at 12:00 PM ET, when the problems are released; the sister site describes a short start window of about 12:00 to 12:15 PM ET. You may still compete after that, but without a certified score you cannot be considered for camp or team selection.
- Camp selection runs through the US Open. For 2025-26, the top online competitors were invited to the proctored US Open, which served as the primary basis for training-camp finalist selection. The organizers describe this as a transitional arrangement that may be adjusted.
- Platinum reset to Gold. At the start of the season, Platinum competitors were moved back to Gold, a practice the organizers have said they may continue in future seasons.
Separately, USACO’s integrity rules apply to every contestant: you must work alone, generative AI tools are not permitted, and serious violations can result in a lifetime ban.
Free USACO Preparation Materials
Scan the QR code below to access free practice problems, study guides, and past contest materials with solutions.