Nos étudiants à Milan pour un concours d’algorithmie – avril 2022

Yoann est en première année de thèse au Loria, le laboratoire d’informatique de l’Université de Lorraine. Il est à l’initiative de la création d’une équipe d’étudiants décidée à aller affronter d’autres équipes européennes lors des qualifications pour le concours international d’algorithmie.

Voici l’histoire de cette aventure, à Milan, les 23 et 24 avril 2022, pour une compétition rassemblant 97 équipes.


Tous les ans, l’Association for Computing Machinery ACM organise un concours d’algorithmie universitaire international s’appellant ICPC (International Collegiate Programming Contest).

C’est un concours en équipe de 3 personnes où durant 5h les participants doivent résoudre une dizaine de problèmes à difficultés variables.

Les équipes ont à leur disposition un seul ordinateur et doivent donc bien se répartir le travail; deux cherchent une solution à un problème pendant que le troisième code une solution trouvée à un autre problème.

Le concours est divisé en plusieurs qualifications pour toutes les régions du globe. La France se trouve dans le SWERC (SouthWestern Europe Regional Contest) avec l’Espagne, le Portugal, l’Italie, la Suisse et l’Israël. Cette année la qualification a eu lieu à Milan en Italie réunissant un total de 97 équipes provenant de 49 différentes institutions. C’est une super occasion de rencontrer des élèves d’autres universités et d’autres pays, et même de visiter la ville où se déroule le concours. Finalement les deux, trois ou quatre premières équipes seront qualifiées à une grande finale mondiale qui devrait avoir lieu dans un an; la pandémie ayant causé un décalage entre les qualifications et la finale.

Je suis arrivé à Milan avec Zac le vendredi en début d’après midi. Nous avons profité de notre après midi pour visiter la ville avec son château, sa cathédrale et sa galerie Vittorio Emanuele II. Nous avons ensuite rejoins Thomas avec qui nous avons passé une soirée avec des étudiants de Politecnico di Milano, l’école accueillant le concours.

Le samedi matin a commencé par la cérémonie d’ouverture du concours avec des instants musicaux et des conférences de la part des sponsors. C’est aussi l’instant de faire une photo d’équipe malheureusement masqués.

Après un déjeuner dans une cantine de l’école, une session d’entraînement de 1h30 est organisée pour que les participants puissent se familiariser avec l’environnement et pour que les organisateurs règlent les derniers soucis techniques. Quatre problèmes nous sont proposés et nous en résolvons finalement trois; le quatrième problème plus dur n’ayant été résolu par aucune équipe. Nous obtenons la 11ème place de cette session d’entraînement, ce qui nous laisse envisager la possibilité de revenir avec une médaille. En effet, les deux première équipes du concours seront récompensées d’une médaille d’or, les quatre équipes suivantes d’une médaille d’argent (de la 3ème place à la 6ème) et les huit suivantes (de la 7ème à la 14ème place) d’une médaille de bronze.

La journée se termine ensuite par un grand banquet à l’hôtel Crowne Plaza Milano Linate . L’occasion de discuter avec les autres équipes et de déguster un super repas.

Vient ensuite, le dimanche, le grand jour. Les 5h de concours commencent à 9h et finissent 13h. Nous nous positionnons rapidement parmi les premières équipes fleurtant avec le top 5 pendant un certain temps. Malheureusement après 2h de compétition nous n’auront résolu aucun autre problème. Malgré de très bonnes pistes pour deux autres problèmes (C et H) nous n’auront pas réussi à conclure. Au bout de 4h et une heure avant la fin, le classement est figé. Seul le nombre de soumissions des autres équipes pour chaque problème sont affichés, sans savoir si les soumissions sont juste ou non. À ce moment là nous sommes classé 11ème.

Les cases vertes représentent les problèmes résolus au bout de 4h, en rouge les problèmes tentés mais échoués et en bleu les problèmes qui ont été tenté durant la dernière heure. La valeur écrite dans les cases vertes est la minute à laquelle le problème a été résolu. Le classement finale se fait sur le nombre de problèmes résolus puis en cas d’égalité sur la somme des temps de résolutions plus 20 minutes par tentative échouée. Le nombre de tentatives est inscrites en bas de chaque case. À ce stade, au vu du nombre de cases bleues, nous avons peu de chances de se maintenir dans les 14 meilleurs équipes mais il reste un petit espoir.

Après ces 5h de compétions qui seront très vite passées nous allons mangé puis nous jouons à un jeu de cartes italien jusqu’à ce que la cérémonie de clôture commence. Des solutions pour chaque problème sont présentée puis vient le moment tant attendue des résultats. Cela se fait en révélant les résultats des soumissions faites durant la dernière heure les unes après les autres en commençant par les soumissions des équipes en fin de classement ce qui met perpétuellement à jour le classement; une équipe grimpant dans le classement dès qu’une soumission est correcte. Après une bonne demi-heure de suspens [https://www.youtube.com/watch?v=bDx1XodgPrY] nous découvrons notre classement: 16ème, à 2 places d’une médaille de bronze.

On ressent alors de la déception, mais en relativisant cela reste tout de même une bonne performance. Les seules équipes françaises devant nous viennent de l’ENS de Paris et de l’école polytechnique. Les grands gagnants du SWERC proviennent d’une université privée catalane qui vient à peine d’être crée pour remporter cette compétition en recrutant des élèves déjà très bon en compétition compétitive et provenant de pays comme la Russie ou l’Ukraine où le niveau y est très élevé. Depuis les années 2000 se sont presque systématiquement des russes qui remporte la finale mondiale de l’ICPC. Le niveau à cette édition du SWERC était donc particulièrement élevé.

Nous repartons alors avec 6 ballons d’héliums (un ballon de la couleur du problème est apporté à sa table à chaque fois que celui-ci est résolu) et plein de bons souvenirs d’un super week-end à Milan.

Yoann – mai 2022