Mistrzostwa Szkół Średnich w Programowaniu Zespołowym

III Mistrzostwa Polski Szkół Średnich w Programowaniu Zespołowym
Instytut Informatyki, Uniwersytet Wrocławski
25-26 czerwca, 2022 r.

Link do transmisji z zawodów i zakończenia: https://youtu.be/TphMKFLN908?fbclid=IwAR0mH6vlGfkyMj9TgsrrlknQlhIsbYYrCXhO-GlWd00zu09IonYWyipwftI


W weekend, 25-26 czerwca 2022 roku, w Instytucie Informatyki Uniwersytetu Wrocławskiego, rozegrane zostaną III Mistrzostwa Polski Szkół Średnich w Programowaniu Zespołowym. Mistrzostwa są jednym z działań w projekcie „Mistrzostwa w algorytmice i programowaniu” realizowanym przez Fundację Rozwoju Informatyki przy merytorycznym wsparciu Wydziału Matematyki, Informatyki i Mechaniki Uniwersytetu Warszawskiego i Wydziału Matematyki i Informatyki Uniwersytetu Wrocławskiego. Projekt „Mistrzostwa w algorytmice i programowaniu” jest częścią wieloletniego  „Programu rozwoju talentów informatycznych na lata 2019-2029” ustanowionego uchwałą nr 43 Rady Ministrów z dnia 28 maja 2019 r.

W tegorocznych mistrzostwach wystartują 53 zespoły uczniowskie reprezentujące 35 szkół średnich z całej Polski. Każdy zespół składa się z 3 uczniów. W wyjątkowych przypadkach, za zgodą organizatorów, dopuszczalne są zespoły liczące mniej osób. W sobotę 25 czerwca zostaną rozegrane zawody próbne, których celem jest zapoznanie uczestników mistrzostw ze specyfiką konkursu i warunkami technicznymi. Właściwe zawody odbędą się w niedzielę 26 czerwca w godzinach 9.30 – 14.30. Drużyny otrzymają do rozwiązania 15 zadań o różnej skali trudności – od bardzo prostych dla początkujących programistów i algorytmików, po bardzo trudne na poziomie zawodów studenckich. Na samym początku zawodów zostanie odkrytych tylko 7 zadań, następnie po upływie pierwszej godziny – 4 zadania, po upływie drugiej godziny – 2 zadania i po upływie trzeciej godziny – 2 zadania. Rozwiązanie każdego zadania polega na zaprojektowaniu algorytmu dla problemu z zadania, zaimplementowaniu tegoż algorytmu w jednym z dwóch dostępnych języków programowania – C lub C++, wysłaniu gotowego programu na serwer sprawdzający. Zgłoszone rozwiązanie zostaje zaakceptowane, jeśli da poprawne wyniki dla wszystkich danych testowych przygotowanych przez organizatorów mieszcząc się przy tym w podanych limitach czasowych i pamięciowych na wykonanie obliczeń. Zespół otrzymuje informację zwrotną w odniesieniu do swojego zgłoszenia i w przypadku braku akceptacji rozwiązania może nadal pracować nad zadaniem i podejmować kolejne próby zgłoszeń. Czas rozwiązania zadania liczy się od momentu jego udostępnienia zawodnikom do momentu akceptacji. Za każde wcześniejsze, odrzucone rozwiązanie zaakceptowanego w końcu zadania nalicza się 20 minut kary. Ranking jest sporządzany na podstawie liczby rozwiązanych zadań. Im więcej rozwiązanych zadań, tym wyższa pozycja w rankingu. W przypadku takiej samej liczby rozwiązanych zadań o pozycji w rankingu decyduje łączny czas rozwiązań wszystkich zaakceptowanych zadań. Im krótszy czas, tym lepsza pozycja w rankingu.

Zawody są rozgrywane w trzech kategoriach: ogólnej, klas drugich – bez maturzystów, klas pierwszych – tylko uczniowie klas pierwszych. Mistrzem Polski Szkół Średnich w Programowaniu Zespołowym zostanie zwycięzca kategorii ogólnej.

W niedzielę 26 czerwca przebieg Mistrzostw będzie można śledzić poprzez stronę zawodów mistrzostwa.solve.edu.pl, na której będzie dostępny ranking zawodów uaktualniany w czasie rzeczywistym. Ponadto w portalu map.org.pl oraz na stronie mistrzpostwa.solve.edu.pl znajdziemy link do transmisji internetowej z zawodów, podczas której Kamil Dębowski - medalista licznych, międzynarodowych konkursów algorytmiczno-programistycznych – będzie „na żywo” rozwiązywał wybrane zadania konkursowe. Przebieg zawodów będzie komentował Marcin Knapik – Akademicki Mistrz Europy Środkowej w Programowaniu Zespołowym z roku 2020. Prof. Krzysztof Diks poprowadzi studio Mistrzostw, do którego zaprosi osoby mające istotny wpływ na rozwój młodzieżowej informatyki w Polsce.

Poniżej przedstawiamy harmonogram Mistrzostw, listę szkół biorących udział w zawodach oraz zwycięzców poprzednich dwóch edycji.


Mistrzowie Polski w poprzednich edycjach:

  • 2020: Jonasz Aleszkiewicz, Jakub Bachurski, Paweł Pilarski, XIV Liceum Ogólnokształcące im. Stanisława Staszica w Warszawie
  • 2021: Jakub Bachurski, Michał Stawarz, Jan Strzeszyński, XIV Liceum Ogólnokształcące im. Stanisława Staszica w Warszawie

 

Regulamin Mistrzostw

Informacje ogólne

  1. Zawody odbędą się trybie stacjonarnym w Instytucie Informatyki Uniwersytetu Wrocławskiego (ul. Joliot-Curie 15).
  2. W zawodach biorą udział zespoły (drużyny), składające się maksymalnie z trzech osób – uczniów jednej szkoły ponadpodstawowej w Polsce.
  3. Każda drużyna ma dyspozycji jeden komputer.
  4. Podczas Mistrzostw obowiązują zasady fair-play. Nie będziemy ich tu definiować, ale w szczególności zabronione jest:
    • korzystanie przez drużyny z pomocy osób trzecich,
    • kontaktowanie się z innymi drużynami podczas trwania zawodów,
    • używanie własnych urządzeń elektronicznych,
    • wnoszenie na teren zawodów nośników pamięci (np. pendrive’ów),
    • próby przeciążania systemu (np. nieracjonalnie dużą liczbą zgłoszeń),
    • wszelkie działanie mające na celu utrudnienie startu innym drużynom bądź zakłócenie przebiegu zawodów.

Uczestnictwo w zawodach

  1. Rejestracja drużyn.

  • Aby wziąć udział w Mistrzostwach trzeba zarejestrować drużynę w systemie.
  • Drużyny, które startowały w turniejach organizowanych w ramach projektu Mistrzostwa w Algorytmice i Programowaniu lub w poprzednich edycjach również muszą się zarejestrować.
  • Rejestracja drużyn rozpocznie się 6 czerwca i trwać będzie do 13 czerwca do godziny 18.00.
  1. Uwierzytelnienie drużyn.

  • W oficjalnej rywalizacji Mistrzostw mogą wziąć udział jedynie drużyny uwierzytelnione, tj. takie, których dane zostały potwierdzone przez nauczycieli bądź dyrekcje szkół. Drużyny nieuwierzytelnione mogą wziąć udział w rywalizacji nieoficjalnej.
  • Nauczyciele biorący udział w projekcie Mistrzostwa w Algorytmice i Programowaniu otrzymali informację o procedurze uwierzytelnienia drużyn.
  • Drużyny z innych szkół powinny zwrócić się do swoich nauczycieli (bądź dyrekcji szkół), by Ci przesłali na adres mistrzostwamap@cs.uni.wroc.pl następujące informacje o każdej z drużyn:
    • Nazwa drużyny
    • Imiona i nazwiska członków drużyny (oraz przy każdym zawodniku informację, do której klasy uczęszczał w roku szkolnym 2021/2022)

Ponadto informacja powinna zawierać: nazwę szkoły, imię i nazwisko osoby autoryzującej (nauczyciela lub dyrektora) i kontaktowy numer telefoniczny do tej osoby. W przypadkach, w których powyższa procedura okaże się być niemożliwa do przeprowadzenia, drużyny mogą wysłać maila ze stosownymi informacjami na powyższy adres mailowy. Organizatorzy spróbują innych procedur autoryzacji, choć nie mogą gwarantować ich pomyślnego skutku.

  1. Kwalifikacja drużyn.

  • Ze względu na ograniczenia organizacyjne do oficjalnej rywalizacji Mistrzostw zostanie zakwalifikowanych co najwyżej 60 drużyn, spośród tych, które zarejestrują się w systemie i zostaną autoryzowane.
  • Organizatorzy gwarantują zakwalifikowanie co najmniej jednej drużyny z każdej szkoły biorącej udział w projekcie MAP.

Przebieg zawodów

  1. Zawody trwają dwa dni.
    • W pierwszym dniu odbędzie się sesja próbna, w czasie której uczestnicy będą mogli zapoznać się ze środowiskiem programistycznym (sieć komputerowa, kompilator, tryb oceniania, itp.).
    • Właściwe zawody odbędą się w drugim dniu i trwają 5 godzin. W przypadku wystąpienia nieprzewidzianych trudności organizatorzy w porozumieniuz jury zawodów mają prawo przedłużyć czas rozwiązywania zadań.
  2. Do rozwiązania będzie 15 zadań, których treść będzie odkrywana przed zawodnikami w trakcie zawodów według następującego harmonogramu:
    • w momencie rozpoczęcia zawodów odkrytych zostanie 7 zadań.
    • w czasie trwania zawodów będą odkrywane kolejne zadania:
      • po upływie pierwszej godziny – 4 zadania,
      • po upływie drugiej godziny – 2 zadania,
      • po upływie trzeciej godziny – 2 zadania.

Zamierzeniem organizatorów jest, by w każdej turze wśród odkrywanych zadań znajdowały się zadania o różnym stopniu trudności (także zadania nieskomplikowane).

  1. Każde zadanie można rozwiązywać do końca zawodów, niezależnie czasu jego odkrycia.
  2. System konkursowy umożliwia kontakt z organizatorami w celu zadania pytań. Należy mieć na uwadze, że ze względu na specyfikę zawodów, odpowiedzi mogą nadchodzić z opóźnieniem. W systemie mogą też pojawiać się ogłoszenia publiczne. Zalecane jest przeglądanie ogłoszeń, gdyż mogą one zawierać ważne informacje organizacyjne lub dotyczące treści zadań lub wyników.
  3. Podczas zawodów widoczne będą pełne wyniki zgłoszeń na zbiorze wszystkich testów. Należy mieć na uwadze ewentualne opóźnienia w ocenie przy dużym obciążeniu systemu.
  4. Jury zawodów  może zdyskwalifikować drużyny, które próbują złamać zabezpieczenia systemu konkursowego lub utrudnić przebieg zawodów..

Ocena rozwiązań

  1. Rozwiązaniem każdego zadania jest program komputerowy napisany w języku C lub C++.
  2. Każde rozwiązanie przesłane do oceny jest sprawdzane przez system sprawdzający na zestawie testów (w tym na testach niejawnych, nie podanych w treści zadania). Wynikiem sprawdzenia jest zaakceptowanie albo odrzucenie rozwiązania.
  3. Rozwiązanie zostanie zaakceptowane tylko wtedy, gdy dla wszystkich testów udzieli poprawnej odpowiedzi i poprawnie zakończy swoje wykonanie.
  4. W treści każdego zadania znajduje się informacja o limicie pamięci (taki sam dla wszystkich testów) oraz limicie czasu na test. Limit czasu podany w treści zadania dotyczy maksymalnych testów. Limit czasu w pozostałych testach może być mniejszy. Organizatorzy pozostawiają sobie definiowanie pojęcia maksymalnych testów. Przekroczenie tych ograniczeń skutkuje odrzuceniem rozwiązania.
  5. Do przeprowadzenia oceny rozwiązań używane będą dane wejściowe, których format jest opisany w treściach zadań.
  6. Drużyny są szeregowane na podstawie liczby zaakceptowanych zadań. O kolejności drużyn posiadających tę samą liczbę zaakceptowanych zadań decyduje mniejsza kara czasowa. Kara czasowa naliczana jest jedynie za zaakceptowane zadanie i jest równa liczbie minut, które upłynęły od odkrycia zadania do jego zaakceptowania, powiększoną o 20 minut za każde wcześniejsze niezaakceptowane zgłoszenie drużyny do tego zadania. Kara czasowa drużyny to suma kar naliczonych za wszystkie zaakceptowane zadania.
  7. Rozwiązania niekompilujące się (komunikat compile error) i rozwiązania nadesłane do już zaakceptowanego zadania nie powodują naliczenia 20-minutowej kary czasowej.
  8. W trakcie zawodów, przez pierwsze cztery godziny trwania sesji, do publicznej wiadomości są na bieżąco podawane aktualne wyniki drużyn. Przez ostatnią godzinę informacje o wynikach sprawdzania rozwiązań swojej drużyny otrzymują tylko zawodnicy.

Klasyfikacje

Drużyny startujące w oficjalnej rywalizacji będą sklasyfikowane w następujących (coraz węższych) kategoriach:

  • Kategoria ogólna – obejmująca wszystkie drużyny,
  • Kategoria II klas – obejmująca drużyny, w których składach nie ma żadnego maturzysty,
  • Kategoria I klas – obejmująca drużyny składające się wyłącznie z uczniów klas pierwszych.

Ponadto zostanie podana klasyfikacja "open" obejmująca wszystkie nieautoryzowane drużyny.

Uwagi końcowe

Kwestie nie objęte Regulaminem rozstrzyga jury zawodów. Decyzje jury są ostateczne i nie podlegają reklamacji.

Edycja 2021 

Cała klasyfikacja generalna: https://mistrzostwa.solve.edu.pl/ed2021/ranking.html
Treść zadań: https://mistrzostwa.solve.edu.pl/ed2021/zadania.pdf
Omówienie zadań: https://www.youtube.com/playlist?list=PLM-1BxxKeFD4N1jj_0wcAfCaRMT3zhJ8S

 

Edycja 2020 

Cała klasyfikacja generalna: https://mistrzostwa.solve.edu.pl/ed2020/ranking.html
Treść zadań: https://mistrzostwa.solve.edu.pl/ed2020/zadania.pdf
Omówienie zadań: https://www.youtube.com/playlist?list=PLM-1BxxKeFD4LoMYv5Z5nHy4nlvLhaF9h