The category P of the Mathematical Olympiad is a programming competition for Czech secondary school students. In line with its origin as a section of the Mathematical Olympiad, the focus of the competition is on problem solving and design of efficient algorithms rather than routine programming skills, and the choice of tasks also reflects the current trends in theoretical computer science. In these aspect it differs from many other programming contests.
The Mathematical Olympiad is an official competition of the Ministry of Education, Youth and Sports of Czech Republic, supervised by the Union of Czech Mathematicians and Physicists. The Mathematical Olympiad is held in several categories depending on the age of the participants. In 1985 during the 35th annual Mathematical Olympiad a decision was made to introduce a new category P with no age constraints, whose tasks would be primarily algorithmic in nature.
Initially, the tasks were solved only theoretically – the contestants wrote on paper their solutions including the programs, and the solutions were then evaluated manually by organizers. In 1994, the greater availability of personal computers made it possible to introduce practical tasks, where the contestants submit their programs electronically and these are then automatically tested on data sets prepared in advance. Nevertheless, theoretical tasks still remain an important part of the competition.
The results of the category P of the Mathematical Olympiad are a basis for the selection of teams representing Czech Republic at various international programming competitions. Czechoslovakia (and later Czech Republic) has participated in International Olympiad in Informatics and in Central European Olympiad in Informatics since their first years in 1989 and 1994, respectively. Since 1999, we have also been sending the selected participants to the joint Czech-Polish-Slovak Preparation Camp.
The scientific background, especially the preparation of problems and their scoring, is currently handled alternately by lecturers and students of the Faculty of Mathematics and Physics of Charles University, Prague and of Comenius University, Bratislava.
Each annual competition consists of three competition rounds – home, regional and national round. The home round consists of two theoretical and two practical problems. The problem statements are published and distributed during summer, and students have several months to work on their solutions. The solutions are submitted electronically. The practical tasks are automatically evaluated on data sets tailored to test their correctness and efficiency; the participants immediately learn how successful they were and can possibly re-submit corrected versions. The theoretical tasks are evaluated manually after the deadline in November.
About 100 of the participants qualifying from the home round are invited to the regional round, organized in January by the respective regional committees of the Mathematical Olympiad. The contestants solve four theoretical tasks in the time limit of 4 hours.
The 30 most successful participants are invited to compete in the national round, held in March along with the national round of the category A of the Mathematical Olympiad. The national round has two competition days. Each day, the contestants solve three tasks in the time limit of 4.5 hours; the first day the tasks are theoretical while the second day practical tasks are solved directly at computers.
The successful participants are well prepared for university studies both in practical software engineering and in theoretical computer science. The curriculum of the competition includes many of the subjects covered in the first years of these studies and encourages a deeper and more hands-on understanding of the topics. Most of the former participants nowadays hold important positions in academia as well as software development companies.