Using This Guide
Authors: Nathan Wang, Benjamin Qi
How to effectively use this guide to maximize your productivity.
Please help us complete this guide by giving feedback using the "Contact Us" button or clicking the Feedback icon on the right of the screen. You can give feedback about anything!
If you found the guide useful, or if you got stuck while using the guide, please also let us know! :)
Warning: This guide is NOT a syllabus!!
- For Bronze, Silver, and Gold contestants, we aim to be a "one stop shop," meaning that this is the only site you have to use to be exposed to most (if not all) of the topics required for Bronze to Gold.
- For Platinum contestants, we'll try our best to cover the main topics.
- The "Advanced" section contains material that is relevant for USACO Camp and beyond.
Note: We are currently focusing on the General - Gold sections. Modules that are part of Platinum and Advanced will remain mostly incomplete for the time being.
- Use the Module Progress dropdowns (to the right of the module title and at the bottom of the page) to track your progress through this guide! Changes will be reflected by the navigation bar on the left.
- If you're stuck, ask for help in the USACO Forum, an unofficial Q&A forum for USACO contestants and competitive programmers.
- Read through all starred resources before continuing!
- We highly recommend doing all starred problems. If you need more practice, try some of the unstarred ones.
- Difficulty represents how challenging a problem is expected to be to someone after they read through the module, and is not comparable across modules.
- It's okay to skip "Very Hard" or "Insane" problems in Bronze - Gold and return to them later.
- See Introducing Modules for more information.
Skipping around is especially recommended for higher level contestants (Gold/Platinum). Feel free to mark a module as "Skipped" and come back to it at a later time!
For lower level contestants, the guide is generally designed to be completed in order. However, feel free to skip certain modules and come back to it later.
We highly recommend that you make an account by clicking the "Settings" button on the bottom left of the screen (or in the hamburger menu on mobile). That way, your settings and your progress will be backed up to our servers and synced across devices.
To change your language, click the "Settings" button on the bottom left corner of the screen (or in the hamburger menu, depending on the size of the window). Content may be different depending on which language is selected!
Your current language is C++.
Your current language is Java.
Your current language is Python.
If you're an instructor/club officer teaching for free, please feel free to use whatever parts you'd like from this guide, though please provide credit + a link to this site! Additionally, feel free to reach out to us if you have a specific request for what material you'd find helpful.
Licensing notes: No part of this site may be used, reproduced, redistributed, commercialized, or sold without prior written permission. Learn more here.
Join the USACO Forum!
Stuck on a problem, or don't understand a module? Join the USACO Forum and get help from other competitive programmers!
Give Us Feedback on Using This Guide!
Leave suggestions for us by making a post on the USACO Forum! Ex: Unclear sections, mislabeled problems, etc.