Teams can choose to enter one of two divisions:
- Division 1: Advanced: for experienced teams, with difficulty level ranging from intermediate to advanced. Teams will encounter problems dealing with graph data structures and optimization algorithms.
- Division 2: Novice: for teams with no competition experience. Students should have completed no more than one year of programming in Java, C++, C#, or Python.