An informatics olympiad or olympiad in informatics (OI) is a programming competition similar in style to the International Olympiad in Informatics (IOI). OIs typically have most or all of the following characteristics:
- A small number of problems (usually between 3 and 6), usually equally weighted
- Total competition time limit of a few hours within which to submit solutions
- Restricted set of programming languages and programming language implementations are allowed for solutions (C and C++ are always allowed, Pascal, Java and Python are often allowed, other languages usually are not); solution to a given problem must consist of a single source file which uses only built-in libraries
- Algorithmic problem style: problems are difficult because they must be solved by efficient algorithms, rather than other engineering-related concerns such as user interface design
- Black-box, automated testing: competitors' solutions are compiled and run against secret test data. A solution receives points for a test case if and only if it produces the correct output for given input within stated time and memory limits. No points are awarded for style.
- Partial scoring: Less efficient solutions may receive partial marks for a given problem by completing smaller or easier test cases while failing larger or more difficult test cases
- Contestants compete individually and are graded in isolation from others.
Examples of OIs include the following:
- International Olympiad in Informatics (IOI)
- Asia-Pacific Informatics Olympiad (APIO)
- Baltic Olympiad in Informatics (BOI)
- Bulgarian Olympiad in Informatics (BOI)
- Canadian Computing Competition (CCC)
- Croatian Olympiad in Informatics (COI)
- Polish Olympiad in Informatics (POI)
- USA Computing Olympiad (USACO)
- Indian Computing Olympiad (ICO)
Many of the national OIs serve as team selection tests, that is, they are used to select students to represent the country at the IOI. For this reason, OIs are generally only open to participation by primary and secondary school students.
The informatics olympiads are among the most prestigious programming competitions, along with the ACM International Collegiate Programming Contest. Strong performance in OIs often helps students gain admission to selective post-secondary institutions, scholarships, and internships with selective software companies.