„Battle Live”: Finał ICPC w Porto

Dzisiaj W portugalskim mieście Porto odbędzie się finał międzynarodowego konkursu programistycznego ICPC 2019. Wezmą w nim udział przedstawiciele Uniwersytetu ITMO oraz innych zespołów z uczelni z Rosji, Chin, Indii, USA i innych krajów. Powiemy ci bardziej szczegółowo.

„Battle Live”: Finał ICPC w Porto
icpcnews /flickr/ CC BY / Zdjęcia z finału ICPC-2016 w Phuket

Co to jest ICPC

ICPC to międzynarodowy konkurs programistyczny dla studentów. Odbywają się od ponad 40 lat – pierwszy finał minął w 1977 roku. Selekcja odbywa się w kilku etapach. Uniwersytety są podzielone według regionów (Europa, Azja, Afryka, Ameryka itp.). W każdym z nich odbywają się etapy pośrednie, w szczególności półfinały Północnej Eurazji odbyło się na naszej uczelni. W finale biorą udział zwycięzcy etapów regionalnych.

W ICPC trzyosobowe zespoły proszone są o rozwiązanie szeregu problemów przy użyciu jednego komputera (niepodłączonego do Internetu). Zatem oprócz umiejętności programowania sprawdzana jest także umiejętność pracy w zespole.

Zespoły Uniwersytetu ITMO siedmiokrotnie zdobyły główną nagrodę ICPC. To absolutny rekord, który utrzymuje się od wielu lat. Zmierzą się w walce o Puchar ICPC 2019 135 grup z całej planety. Uniwersytet ITMO reprezentowany jest w tym roku przez Ilja Poduremennych, Stanisław Naumow и Roman Korobkow.

Jak odbędzie się finał?

Podczas zawodów zespoły otrzyma jeden komputer dla trzech osób. Działa na Ubuntu 18.04 i ma preinstalowane vi/vim, gvim, emacs, gedit, geany i kate. Programy możesz pisać w Pythonie, Kotlinie, Javie lub C++.

Kiedy zespół rozwiązuje problem, przekazuje go do serwera testowego, który ocenia kod. Uczestnicy nie wiedzą, jakie testy wykonuje maszyna. Jeśli wszystkie zakończą się pomyślnie, zespół otrzymuje dodatkowe punkty. W przeciwnym razie generowany jest błąd i uczniowie są wysyłani do poprawienia kodu.

Zgodnie z zasadami ICPC wygrywa zespół, który rozwiąże najwięcej problemów. Jeżeli takich drużyn jest kilka, o zwycięstwie decyduje najmniejszy czas karny. Za każdy rozwiązany problem uczestnicy otrzymują minuty karne. Liczba minut równa jest czasowi od rozpoczęcia zawodów do przyjęcia zadania przez serwer testowy. Jeżeli zespół znajdzie rozwiązanie, wówczas za każdą nieprawidłową próbę jego zaliczenia otrzymuje kolejne dwadzieścia minut kary.

„Battle Live”: Finał ICPC w Porto
icpcnews /flickr/ CC BY / Zdjęcia z finału ICPC-2016 w Phuket

Przykładowe problemy

Cele mistrzostw wymagają zespołowej koordynacji i koncentracji. Dodatkowo sprawdzają znajomość poszczególnych algorytmów matematycznych. Oto przykład zadania, które zostało zaproponowane uczestnikom ICPC 2018:

W typografii istnieje termin „rzeka” - jest to sekwencja spacji między słowami, utworzona z kilku linii tekstu. Pewien znawca rzek (naprawdę) chce wydać książkę. Chce, aby przy drukowaniu czcionką o stałej szerokości na stronie „tworzyły się” najdłuższe rzeki typograficzne. Uczestnicy musieli określić szerokość pól, przy której warunek ten będzie spełniony.

Na wejściu program otrzymał liczbę całkowitą n (2 ≤ n ≤ 2), która określa liczbę słów w tekście. Następnie wpisano tekst: słowa w jednym wierszu oddzielono jedną spacją i nie mogły składać się z więcej niż 500 znaków.

Na wyjściu program miał pokazać szerokość pól, na których tworzy się najdłuższa „rzeka” i długość tej rzeki.

Pełna lista z powrotem od zeszłego roku, a także rozwiązania do nich wraz z objaśnieniami można znaleźć na stronie internetowej ICPC. Tamże. jest archiwum z testami, na które „wystawiono” programy uczestników.

Więc dzisiaj po południu na stronie mistrzostw i YouTube-kanale Ze sceny będzie transmitowana transmisja na żywo. Już dostępny nagrania przed pokazami.

Co jeszcze mamy na blogu na Habré:

Źródło: www.habr.com

Dodaj komentarz