The contest

Presentation of the contest

SWERC has essentially the same structure as the ACM ICPC contest, except that it takes place at the level of Southwestern Europe. The contest is fought between teams, each of which represents an institution from the region, i.e., a university, an engineering school, etc. Institutions choose the teams that they wish to send to SWERC; they cannot send more than a few teams, so they usually run an internal selection if too many students are interested.

Each team comprises three students from the institution. Each student must satisfy the eligibility requirements (see also team composition). The teams of each institution are accompanied by a coach, who serves as the person of contact for the institution: it is usually an older student or a member of faculty. The coach is the person who registers the teams (see registration), and usually organises their travel, hosting, etc.

The teams usually travel together with their coach to the contest venue on Friday. They come to register on Friday evening or Saturday morning, attend the opening ceremony, talks, meals, and social events. A mock contest is held on Saturday afternoon, and the actual contest takes place on Sunday (see the schedule). The teams usually leave on Monday or on Sunday evening after the awards ceremony.

At the start of the contest, the teams receive a printout of the problem statements. They have five hours to solve as many of these problems as possible. Each problem statement is written in English and describes a real-life situation that can be solved with algorithmic skill, e.g., finding the shortest route from one point to another in a city, computing the area of a polygon, etc. To solve the problem, the team must write a computer program that can give the correct answer to the challenge, using one of the official programming languages of the contest. The problem statement specifies the input and output format, some limits on the problem parameters (instance size, etc.), and limits on memory, running time, etc.

When a team thinks that they have solved a problem, they submit their program to an automated judging system for evaluation. The judging system tests the program on a secret set of inputs and outputs, and verifies that the program always returns the correct answer, without crashing, and respecting the running time and memory limitations. If the program passes the tests, the judge gives an ACCEPTED verdict, and the team has successfully solved the problem. Otherwise, the judge gives a verdict with some information about the issue (e.g., WRONG ANSWER when the program returns an incorrect answer on some test case, TIME LIMIT EXCEEDED if the program did not complete in the required time, RUNTIME ERROR if it crashed, etc.). In this case, the contestants have to identify the problem and fix it: they are not provided with more information about the cause of the error or the test case that triggers the error.

Each team competes on one single computer, which is provided by the contest organisers. The computer has no internet access. It features a compiler, several common programming environments, and the documentation of the official languages. The computer runs a GNU/Linux operating system; see environment for details. During the contest, the team members work together, but they cannot be helped by their coaches or by anyone from the outside; also, they cannot communicate with other teams. Teams members cannot use any electronic devices, but they may bring a paper reference document; see contest material for details.

At the end of the contest, the teams are ranked by the number of problems that they have solved, and ties are broken based on the time that they took to solve the problems (see scoring). This is how the final standings for the contest are derived; see for instance the standings from SWERC 2017. The best teams receive medals: the top 2 teams receive gold medals, the next 4 teams receive silver medals, and the next 8 teams receive bronze medals. Further, the highest-ranking teams (usually at least the first two teams) are selected to participate to the ACM ICPC World Finals, where they compete against teams from all over the world.

The organization committee of SWERC changes every few years, and usually comprises faculty from the host institution as well as volunteers. See organizers for details about the current organizers. The venue for SWERC 2018 is Télécom ParisTech; see venue for practical details. Last year, SWERC 2017 was also held at Télécom ParisTech, and before this SWERC 2016 was held in University of Porto; see past editions for details about previous editions.

You can download the participant information booklet for practical information about SWERC'18.

Call for bids to organize SWERC'19

We are currently looking for applicants to organize the 2019 edition of SWERC. Here is the text of the call for bids:

Dear colleagues and team coaches,

This is the call for bids to organize the 2019 edition of the SWERC programming competition. SWERC is the South-Western Europe Regional Contest for ACM ICPC, the premier global programming competition conducted by and for the world's universities. Details about SWERC are available at https://swerc.eu/2018/the-contest/.

We have organized SWERC 2017, and will be organizing SWERC 2018, at Télécom ParisTech in Paris. Sadly, we will not be able to host the contest in 2019, because Télécom ParisTech will relocate to a new building in Saclay. Hence, we believe that this is the right moment to involve new people in the organization of SWERC, and rotate it to new institutions and countries that would like to play a leading role in programming competitions.

Hosting SWERC is a great opportunity to contribute to the competitive programming and ICPC community, and to give students a chance to shine by working on tricky problems in a friendly and international atmosphere. Organizing SWERC also helps to make your university more visible, and to raise awareness for competitive programming. All told, it is a challenging but quite rewarding effort.

So, if you could be interested in hosting SWERC in 2019, and possibly 2020, please write back to swerc-committee@telecom-paristech.fr to get in touch. It would be useful to discuss the following points in your email:

  • What is the city, department, university where SWERC would take place?
  • How many times have you participated in SWERC either as team-member, or team-coach?
  • Have you organised any local programming event? If yes, of what size?
  • What team will you have to support you in organising the event?
  • What support do you have from your department and university (for now)?
  • How do you expect to organize the team of judges and problem-set?
  • How many contestant teams would you be able to accommodate at most?
  • What do you expect for accommodation costs for teams? (just an estimate, of course)
  • Any questions that you may have about what it means to organize SWERC.

The choice among these bids will be made by the newly-appointed SWERC committee, which consists of current and past SWERC directors: Antoine Amarilli (Télécom ParisTech), Fernando M. A. Silva (University of Porto), Luis Hernández Yáñez (Universidad Complutense Madrid), Jon Ander Gómez Adrián (Universidad Politécnica de Valencia) and Pedro Guerreiro (University of Algarve).

As an example of an application document, our successful bid to organize SWERC'17 (which we sent in 2016) is here.

Advertising the contest

You can download a poster to advertise SWERC 2018. We also have a press release.

Opinion poll

An opinion poll about SWERC'18 was conducted after the event. We received 65 answers. The aggregated results are available here.

Reports

The SWERC contest is managed by a French nonprofit association called CPCI ("comité de promotion des concours informatiques", RNA number W751238568). After SWERC 2018, we have prepared an activity report and a financial report for the activities of this nonprofit. The activity report gives some details of how the event was organized and run, and the financial report gives a breakdown of all income and all expenses in preparing the contest. These documents are available here:

Preparing for the contest

To perform well at SWERC, it is important to train in advance. Teams should train together to have some experience of working together, collaborating to solve problems, sharing the computer between the team members, and allocating the time between problems. (In particular, problems that are not ACCEPTED do not contribute to the score, so it is important to finish the problems that you start. Further, the time scoring rules encourage teams to solve the easy problems first.)

Team members should also become acquainted with the format of the problems and with the algorithmic concepts that usually occur in problems; and of course they should have some practice with one of the official programming languages, to write code quickly and without errors, and debug it efficiently if there is a problem.

The best way to train as a team is to get together with your team members and with one computer for a fixed duration (five hours or a bit less), and try your luck on some problems from previous years without using the Internet. There are websites that collect such problems, and also provide a judging system which is similar to the one used in the contest. In particular, we provide a public Domjudge instance featuring the problems from SWERC'17 (they can also be downloaded directly) that you can use to practice. A far more diverse collection of ICPC problems is offered on websites such as ACM-ICPC Live Archive and UVa Online Judge; in particular the problems of SWERC 2017 can be found on ACM-ICPC Live Archive and on UVa Online Judge. To use the judging system on these websites, you need to create an account (on UVa Online Judge, on ACM-ICPC Live Archive). There are other websites to train for programming contests in general, such as Codeforces, Topcoder, and France-IOI (in French).

There is also plenty of documentation online about the format of the ACM-ICPC contest and how to train for it. Here are a few links: a Quora thread, a GeeksforGeeks page.

The best teams that participate to ACM-ICPC often prepare a team reference document (aka "notebook") with the code for common algorithms, to be used during the contest. See the regulations page for details about what the notebook can contain. An example of notebook is the one from Stanford University. Please note that we only link this notebook for illustrative purposes and do not otherwise endorse its contents.

Training camps

This list is not updated anymore; you way want to refer to the same list on the SWERC 2019 website.

Several institutions are organizing training camps for ACM-ICPC and SWERC. We are aware of the following:

This list is not moderated and we do not especially endorse the events that it contains. If you would like your event to be listed here, please write to the webmaster.

Other programming contests

This list is not updated anymore; you way want to refer to the same list on the SWERC 2019 website.

We list here some other programming contests than ACM ICPC, with some brief information about their format (individual participation or team participation, participation over the Internet or on-site participation, age restrictions etc.)

This list is not moderated and we do not especially endorse the events that it contains. If you would like your event to be listed here, please write to the webmaster.

Europe sponsor

Huawei

Gold sponsors

Lokad SYSTRAN

Silver sponsors

Almerys Facebook Région Île de France Télécom ParisTech

Bronze sponsors

Criteo Labs

World Finals sponsor

JetBrains