Anyone is eligible to participate in the competition. Participants may compete in teams of up to four and are allowed to access reference books and the internet; however, they are encouraged to cite sources if they use code found online. Directly asking for assistance during the competion from anyone other than tournament organizers is not permitted.
There are two divisions: standard and advanced. Standard division concepts include lists, loops, recursion, and algorithms such as BFS and binary search. Problems in the advanced division emphasize algorithmic complexity and efficiency, with concepts including pathfinding, dynamic programming, and segment trees.
Generally speaking, standard division problems range from Bronze to low Gold USACO levels, while the advanced division problems range from Silver to Platinum. Take a look at our archive to get a sense of the difficulty of each division. The sample problems on the home page can serve as additional guidance for which division to choose.