Programming contests

Several programming contests are organised every year by universities and other organisations. The participants of these contests work in teams of three people. Every team tries to solve as many algorithmic problems as possible within a set time limit (usually five hours) by writing computer programs. The contests consist of a few preliminaries: the Delft Algorithm Programming Contest (DAPC), preceding the Benelux Algorithm Programming Contests (BAPC). The teams that score the best at the BAPC will be invited to participate in the North-Western Europe Regional Contest (NWERC), the winner of which will be granted a place in the World Finals. 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 ACM (Association for Computing Machinery) 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, which mainly take place in the USA.

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. This year, the BAPC will be held in Delft. 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

Tijdens de wedstrijd

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 6 to 8 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 your 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.

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 amount 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 amount 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.