Contest
Programming contests
The collegiate programming contest is a yearly contest with several qualifiers per region. The participants of these contests work in teams of three people with a single computer available. Every team tries to solve as many algorithmic problems as possible within the duration of a contest (usually five hours) by writing computer programs. The best teams of the world compete in the International Collegiate Programming Contest (ICPC or World Finals).
Teams that want to qualify for the ICPC have to participate in several preliminary contests. The first contest is the Delft Algorithm Programming Contest (DAPC). This contest is open for all teams consisting of students of the TU Delft. The best teams are then selected to participate in the Benelux Algorithm Programming Contest (BAPC). In this contest the top teams of the TU Delft will qualify to participate in the North Western Europe Regional Contests (NWERC). The winners of the NWERC will qualify to participate in the ICPC.
These contests are organised every year, the DAPC is usually organised in September. All students of the TU Delft can participate so if you are interested in solving puzzles and writing algorithms feel free to register for one of the contests!
Organisation
Every year, the ICPC Foundation organises international programming contests for students, with regional preliminary rounds (in our case North-West Europe). The teams that finally win the contests, will be qualified to attend the World Finals.
Every university is allowed to submit a few teams to participate in the regional (the NWERC). However, since there are a lot of students of the TU Delft willing to participate in these events, we organise the DAPC (Delft Algorithm Programming Contest), where the best teams will be selected to proceed.
The best teams of the various universities then participate in the BAPC (Benelux Algorithm Programming Contest). Every year, a different university in the region hosts this event, usually a few weeks after the DAPC. The results of the BAPC will be used to send the best teams of the Benelux to the NWERC (North-West Europe Regional Contest).
Contest
The procedure for the preliminary contests is very similar to that of the international contests. Participants are organised in teams of up to three persons. The contest consists of 8 to 13 algorithmic problems. The goal of your team is to create a solution for such a problem in the form of a program. Your program will have to read data from an input file and give back the result as output.
Whenever you believe your program correctly solves the problem, you can submit the program to the jury via the network. They will test your program and report back to you whether it was correct or not. An incorrect program can then be improved and resubmitted. The programs will solely be judged on their workings, so we won’t judge you for any dirty hacks used!
Each team will be provided with a workspace with one computer to implement and test the programs. In addition, you can take as many books and notes with you as you are able to, but bringing USB drives, calculators, laptops, smartphones and such is not allowed. Starting from the BAPC, you are only allowed up to 25 pages of A4 (see Team Contest Reference).
Score
The contest is 5 hours long. This means you have 5 hours to solve as many problems as you can. Your score is based on how many correct solutions you presented, and each problem has the same weight. It is possible that two or more teams solve the same number of problems. In that case the time it took you to solve those problems is the deciding factor. For every correct solution, the time is counted from the start of the contest until the correct solution was handed in. For an incorrect solution however, 20 minutes is added to this time. If a solution is handed in incorrectly, but does not get handed in correctly later on, there is no penalty for this incorrect solution. The person who hands in the largest number of correct solutions and has the lowest time score wins.
Problems
The problem set is usually based on known algorithms such as Dijkstra’s shortest path algorithm or backtracking. Often there is also a number of mathematical assignments. In order to perform well it is important that your team can work together well and that you are able to divide the work between your team mates. There is only one computer available so you should plan well and make the most of your computer. Some experience in programming and algorithms is of course very valuable.