Programming Contests

Skip to: History | List of my problems

ballon I have a strong connection with all kinds of programming contests. I feel that they can be a huge motivation factor for students, helping in the promotion of computer science and the desire for always knowing more.

For a more complete list of the prizes I got in the contests I participated see my awards section. For a more textual description of my involvment in contests or for a list of my problems, continue in this page.


Olympiads in Informatics

ONI It all started when I was 15 years old and still in high school, influenced by my brother. While still on 9th grade I participated in the National Olympiads in Informatics (ONI) and I was the youngest contestant. I was 2nd in the national finals and obtained the right to represent Portugal in the International Olympiads in Informatics (IOI) in the Netherlands. I also got the opportunity to participate in a training campus organized by Prof. Pedro Guerreiro which proved to be very influential on good programming techniques.

IOI From there it all started to be part of my life. While I was still at high school, I entered three more editions of ONI and got the 1st place in all of the national finals. With that, I represented Portugal in three more IOI's, held at Hungary, South Africa and Portugal.

Nowadays I cannot participate but I'm still actively involved in the community. I'm one of the main organizers of the National Olympiads, being responsible for part of the logistics (the finals are in my department) and the web site. I'm also active on the scientific side (I'm a problemsetter), I organize the training campus for the students and I am currently the portuguese team leader at the IOI (from 2005 to 2008 I was the deputy leader and since 2009 I'm the team leader).

In 2012 and 2013 I was responsible for organizing the Ibero-American Informatics Contest (CIIC), a programming contest for the secondary students of the Iberian Pensinsula and South America.

In 2012 and 2015 I organized the national

ACM-ICPC Competitions

ICPC When I entered the university, I promoted programming competitions and basically helped in the first experiences in my faculty on that field in the ACM-ICPC International Collegiate Programming Contest, which is a team contest (up to three students), in opposition to the Olympiads, which are individual.

In 1999 I entered my first Southwestern Europe Regional Contest (SWERC) obtaining the 11th place among teams from 4 different countries.

In 2000 the University of Porto Programming Contest (CPUP) was started, with teams from several departments, and I won that first edition. In SWERC'2000 I was now 2nd and failed the qualification for the world finals by a single place (only one team passed at that time - the next edition saw 2 teams advancing but also more countries participating: Switzerland, Austria and Germany.).

I then proceeded to won all editions of CPUP I participated in (2000 to 2003), gaining the right to represent my university at SWERC level, where I was always part of the best portuguese team. During those years I helped in founding the National ACM-ICPC Portuguese Contest (MIUP), with teams from all over the country. I won three editions of that contest, from 2001 to 2003.

While training, among several other sites, I dedicated some time to the UVA Online Problem Archive, in which I solved more than 600 programming problems.

Nowadays I cannot participate as a contestant but I'm an active problemsetter and organizer. I am part of the organization of CPUP and MIUP, and I coach the department teams. Since 2005 I also run the problems discussion session of MIUP, talking about the solutions of all the problems.

IEEEXtreme Programming Contest

I was part of the scientific committee of the IEEEXtreme Programming Contest in 2008 and 2009, authoring several problems.

Logical Programming Contests

CNPL All the afore mentioned contests use imperative programming (I mainly use C/C++). In 2003 I decided to experiment another programming paradigm in contests and I participated for the first time in the National Logic Programming Contest (CENPL), working in Prolog. The contest had an open division, in which post-graduate students could participate and I got the global first place.

I repeated the experience in 2004 and 2005 (where the contest gained a functionl arm, with Haskell being permitted) and in both years I repeated the global first place.

Cyber-Mouse Competition

microrato In 2002, during my final Bsc project, I decided to enter a different competition, dedicated to artificial intelligence. I participated in the Cyber-Mouse virtual robot contest, in which a software agent has to be very fast in solving a maze. I got the first place among teams from several institutions. In 2003 I won again and continued to participate until 2006 (albeith spending less and less time developing the agent), obtaining the 2nd place in 2005.

List of my problems

This is a list of some of my online available problems that were used on real programming competitions. I also contributed to many other contest problems (either on ideas, problem statement or solutions) and I have authores dozens of other problems used in several types of courses.

Southwestern Europe Regional ACM ICPC Contest (SWERC)

National ACM ICPC Programing Contest (MIUP)

University of Porto Programming Contest (CPUP)

IEEEXtreme Programming Contest (IEEEXtreme)

Ibero-American Informatics Contest (CIIC)

National Olympiads in Informatics (ONI)

All these problems are in portuguese.