In competitive programming contests, one must solve well-defined problems by writing computer programs under specified constraints (Wikipedia). Typically, the most popular language is C++, followed by Java and Python.
Contributions or feedback are much appreciated. Please email me at [email protected] or submit a pull request.
I am no longer maintaining most of the pages which correspond to levels below USACO Platinum. It would be especially helpful if someone could update the tables for USACO Silver / Gold.
I recommend that you use C++, even if you already know some other language such as Java or Python (see notes). A solid foundation in math (ex. AIME qualification) can help greatly.
- C++ Tutorial.
- CodeFights
- good way to practice syntax
- Schedule for Beginners
- E869120 Tutorial
Assuming you know how C++ input/output works, you should soon be able to advance from USACO Bronze. After that, you can start doing past USACO Silver problems as well as the USACO training pages. Also, participate in other contests such as AtCoder Beginner.
- Do as many (high-quality) contests as possible.
- Make sure to upsolve after the contest ends! (wiktionary)
- Work through past problems.
- Use the tags to learn new topics as necessary.
- see implementation / USACO categories
- A2OJ
- Problem Topics (Morass)