AMPPZ 2015

Niedziela była bardzo emocjonująca. Szczególnie wielu emocji dostarczały Akademickie Mistrzostwa Polski w Programowaniu Zespołowym, które odbyły się we Wrocławiu.

Zawody można było śledzić online na stronie http://solve.edu.pl/~amppz/chartcode/ranking.html (z niej pochodzi też powyższa grafika). Dzięki uprzejmości Instytutu Informatyki UWr, mamy dane o zgłaszanych rozwiązaniach podczas zawodów. Trochę sobie w tych danych pokopiemy.

Wyniki uczelni

Z wyżej wymienionej strony można odczytać kim są zwycięskie zespoły (pierwsze dwa miejsca dla drużyn z UW, trzecie dla drużyny z UJ). Z 12 przygotowanych zadań, najlepszemu zespołowi udało się rozwiązać 8. A pozostałe? Zobaczmy jak wygląda liczba rozwiązanych zadań w podziale na uczelnie.

Wysokie miejsce UW czy UJ raczej nie dziwi, ale miło zobaczyć znakomitą formę zespołów z XIV liceum (dwa zespoły startowały z XIV’tki, więc ten boxplot należy czytać ostrożnie).

Wyniki zespołów

Przyjrzyjmy się zespołom, które zgłosiły 5 lub więcej poprawnych rozwiązań. Zobaczmy jak walczyły o punkty.
Na poniższym wykresie przedstawiono wynik skumulowanej liczby rozwiązań w podziale na: poprawnie rozwiązane (AC), z błędem wykonania (RE), z przekroczonym czasem (TLE) czy złą odpowiedzią (WA). Co ciekawe strategia zespołu UJ1 była zupełnie inna niż UW5 czy UW1, ten pierwszy wysłał kilka rozwiązań, większość poprawnych, dwa z UW próbowały i próbowały, niestety w większości z wynikiem WA. Widzimy też, że niektóre zespoły miały problem z czasem (TLE) a inne wyłącznie z poprawnością odpowiedzi (WA).

Trudność zadań

Treści zadań dostępne są tutaj. Warto się z nimi pobawić, z zacisza kanapy zazwyczaj kilka wygląda na łatwe. Niesamowite jest to, że pierwsze poprawne rozwiązanie zgłoszono 3 (trzy!) minuty po starcie zawodów. Poniższy wykres przedstawia liczbę poprawnych rozwiązań jako funkcja czasu (w podziale na zadania). Po godzinie od startu zawodów zadanie D rozwiązało 40 zespołów. Ale co ciekawe, kto miał je zrobić, to je zrobił szybko. Poprawne rozwiązania dla zadania F zaczęły spływać później, koniec końców było ich jednak więcej.
Ciekawa historia kryje się też za zadaniem G, rozwiązały je tylko dwa zespoły. Drugi w samej końcówce zawodów. Niby nic, ale właśnie to rozwiązanie zgłoszone przed samą końcówką dało zwycięstwo dla UW5.

Screen Shot 2015-10-26 at 23.55.11

Trudność zadania można też oceniać przez pryzmat różnych możliwych błędów w zgłoszeniach. Poniższy wykres pokazuje skumulowaną liczbę zgłoszeń o określonym statusie w funkcji czasu. Gdy tylko okazało się, że wiele zespołów rozwiązało zadanie D, pozostałe zespoły atakowały to zadanie zaciekle (ale już bez większych sukcesów). Wiele było w tych zgłoszeniach problemów z czasem wykonania. Inny profil problemów obserwowany jest dla zadania B, tutaj najczęstszym problemem jest poprawność odpowiedzi. Ciekawie wygląda zadanie H, które było często atakowane, ale koniec końców rozwiązała je tylko jedna drużyna.

Screen Shot 2015-10-26 at 23.53.46

Poniższy wykres przedstawia te same informacje ale w innej formie. Wszystkie błędne odpowiedzi zgrupowano w jedną czerwoną plamę. Łatwiej zauważyć różnice w szansie na poprawne rozwiązanie dla zadania I w stosunku do zadania H.

Screen Shot 2015-10-26 at 23.55.59

Naturalnym pytaniem jest pewnie: jaki wyglądał profil złych odpowiedzi dla różnych zadań? Jak taki profil pokazać? Oczywiście analizą korespondencji! Poniższy wykres pokazuje, że dla zadania I typowy problem to błąd wykonania, podczas gdy w zadaniu K najtrudniej było zmieścić się w czasie (tak tak, biploty czyta się magicznie).

Screen Shot 2015-10-26 at 23.56.32

Zawody zespołowe w programowaniu budzą niemałe emocje. Miałem przyjemność je przeżywać jako uczestnik (serdeczne pozdrowienia dla Bartka S, Wojtka D, Przemka W, Mateusza K i Adama K za wspólne starty), czy sędzia. A jak się okazuje, na te emocje można też patrzeć poprzez wizualizacje.

2 myśli na temat “AMPPZ 2015”

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">