Regulamin

Regulamin

1. cel mistrzostw

Mistrzostwa są okazją do zademonstrowania i doskonalenia umiejętności w zespołowym rozwiązywaniu problemów informatycznych. Umożliwiają one nawiązanie kontaktów między uczniami, studentami, firmami informatycznymi oraz wszystkimi osobami zainteresowanymi programowaniem i algorytmami, z różnych szkół i miejscowości. Pozwalają poznać specyfikę tego rodzaju rywalizacji oraz pomagają przygotować się do ewentualnego uczestnictwa w zawodach typu ACM International Collegiate Programming ContestAkademickich Mistrzostwach Polski w Programowaniu Zespołowym czy konkursach takich jak Olimpiada Informatyczna, Internetowe Mistrzostwa Polski w Programowaniu.

2. Uczestnictwo w Mistrzostwach

2.1. W Mistrzostwach biorą udział zespoły (drużyny), składające się maksymalnie z trzech osób. 

2.2. Ze względu na otwarty charakter Mistrzostw mogą w nich startować wszyscy za wyjątkiem samych organizatorów i sędziów. 

2.3. Nie istnieją żadne ograniczenia co do składu zespołów (za wyjątkiem liczności, określonej w punkcie 2.1). W szczególności, zawodnicy z jednej drużyny nie muszą uczyć się w tym samym miejscu, pochodzić z tej samej miejscowości, czy być w podobnym wieku. 

2.4. Zawodnicy będą rywalizować w dwóch klasyfikacjach. Klasyfikacja ogólna przeznaczona jest dla wszystkich zespołów, bez wyjątku. Klasyfikacja „junior” przeznaczona jest dla zespołów, w których wszyscy zawodnicy uczą się w szkole średniej (liceum / technikum / szkole zawodowej), gimnazjum, szkole podstawowej lub mają mniej niż 7 lat i są w stanie potwierdzić to stosowną legitymacją / dowodem. Zawodnicy w obu klasyfikacjach będą nagradzani niezależnie (dopuszczalne jest, że zespół otrzyma dwie nagrody, po jednej w każdej z klasyfikacji). 

2.5. W Mistrzostwach może wziąć udział maksymalnie 450 osób. W sytuacjach wyjątkowych, Komitet Organizacyjny zastrzega sobie prawo zmiany tej liczby. 

2.6. W razie zbyt dużej liczby chętnych, Komitet Organizacyjny zastrzega sobie prawo do przeprowadzenia eliminacji, które wyłonią ostateczny skład osobowy zawodów, nie jest to jednak konieczność. Decyzja o eliminacjach zostanie podana do wiadomości publicznej najpóźniej 3 tygodnie przed terminem zawodów. W przypadku nie przeprowadzania eliminacji decydować będzie kolejność zgłoszeń. Komitet Organizacyjny ma prawo do przyjmowania zaproszonych przez siebie drużyn poza kolejnością. 

2.7. Do zawodów mogą zgłaszać się także drużyny dwuosobowe lub pojedynczy zawodnicy. W przypadku takich zespołów, mogą one poprosić organizatorów o połączenie z innymi niepełnymi drużynami. W razie zbyt dużej liczby drużyn Komitet Organizacyjny ma prawo arbitralnie łączyć niepełne zespoły. 

2.8. Zgłoszenia drużyny będzie można dokonać poprzez formularz WWW umieszczony na stronie Mistrzostw, przy uwzględnieniu zasad i terminów tam opisanych. Podanie fałszywych danych w formularzu może grozić dyskwalifikacją z tych i przyszłych Mistrzostw, a także z innych tego typu zawodów organizowanych przez któregoś z organizatorów Mistrzostw. 

2.9. W razie dużej liczby chętnych Komitet Organizacyjny ma prawo do utworzenia równoległego konkursu on-line dla zawodników zdalnych, który będzie posiadał osobną klasyfikację. Klasyfikacja ta nie będzie brana pod uwagę do klasyfikacji Mistrzostw. Zwycięzcy tej klasyfikacji nie otrzymają od organizatorów żadnych nagród, nawet w przypadku osiągnięcia wyniku lepszego niż wynik najlepszej drużyny w klasyfikacji generalnej.

3. Przebieg mistrzostw

3.1. Mistrzostwa trwają dwa dni. 

3.2. Pierwszy dzień jest przeznaczony na aklimatyzację uczestników i sesję próbną, w czasie której zawodnicy będą mogli zapoznać się ze środowiskiem programistycznym (system operacyjny, sieć komputerowa, kompilatory, tryb oceniania zadań, itp.). Wyniki uzyskane podczas sesji próbnej nie liczą się do klasyfikacji końcowej. 

3.3. Sesja właściwa odbywa się w drugim dniu Mistrzostw i trwa 5 godzin. Klasyfikacja końcowa jest ustalana tylko i wyłącznie na jej podstawie. Sędzia Główny, w porozumieniu z Komitetem Organizacyjnym, ma prawo przedłużyć czas rozwiązywania zadań w przypadku wystąpienia nieprzewidzianych trudności. 

3.4. Zawody przeprowadzane są w środowisku sieciowym. Zawodnicy mogą korzystać z sieci tylko i wyłącznie poprzez system WWW dostarczony przez organizatorów, zwany Sprawdzarką (służący między innymi do wysyłania rozwiązań do sprawdzenia, komunikacji z sędziami, czy tworzenia wydruków kodu źródłowego). Używanie sieci do innych celów, takich jak przeglądanie WWW, korzystanie z poczty elektronicznej, zdalne logowanie, ftp i innych jest bezwzględnie zakazane pod groźbą dyskwalifikacji i w miarę możliwości będzie zablokowane przez organizatorów. Każdy zawodnik, który znajdzie lukę w systemie ochrony, jest zobowiązany powiadomić o tym niezwłocznie organizatorów zawodów. 

3.5. Zespołowi prezentowane są 8–12 zadania programistyczno-algorytmiczne, których rozwiązania należy przedstawić w językach Pascal, C lub C++ (w sensie języków akceptowanych przez kompilatory używane na Sprawdzarce, które to zostaną podane, wraz z numerami wersji, na stronie WWW Mistrzostw). Zadania będą sformułowane w sposób niezależny od języka programowania. 

3.6. Zadania będą sformułowane w języku polskim. Na specjalne życzenie, zawodników nie będących obywatelami Polski, zadania mogą zostać sformułowane w języku angielskim. Treść merytoryczna zadań potrzebna do ich prawidłowego rozwiązania będzie taka sama, jednak organizatorzy nie biorą odpowiedzialności za ewentualne różnice w opisie powstałe w wyniku tłumaczenia. 

3.7. Zawodnicy mogą zgłosić, poprzez Sprawdzarkę, fakt zaistnienia niejasności lub wystąpienia błędu w sformułowaniu zadania, na które sędziowie będą na bieżąco odpowiadać. Jeżeli sędziowie uznają, że uwaga jest zasadna, wszystkie zespoły otrzymają stosowne wyjaśnienia. 

3.8. Każde rozwiązanie musi być programem komputerowym napisanym w dowolnym z dostępnych języków programowania (wymienionych w punkcie 3.5). Program musi składać się z pojedynczego pliku z kodem źródłowym. Nie może korzystać z plików dodatkowych oraz nie może tworzyć plików tymczasowych. 

3.9. Program nie może wykonywać czynności służących innym celom niż rozwiązanie zadania, np. celom oszukania lub naruszenia bezpieczeństwa Sprawdzarki. Program nie powinien wywoływać bezpośrednio funkcji systemowych, a wywoływane funkcje biblioteczne mogą prowadzić interakcję z systemem operacyjnym jedynie w celu odczytu / zapisu danych, alokacji / zwolnienia pamięci oraz zakończenia działania. W przypadku rażącego naruszenia tej zasady (także podczas sesji próbnej) Komitet Organizacyjny ma prawo do dyskwalifikacji zawodników z tych i przyszłych Mistrzostw, a także z innych tego typu zawodów, organizowanych przez któregoś z organizatorów Mistrzostw. 

3.10. Każdy zespół ma do dyspozycji jeden komputer, na którym zainstalowane jest oprogramowanie i inne elementy niezbędne lub przydatne do rozwiązywania zadań, typu: system operacyjny, przeglądarka WWW, edytory tekstu, kompilatory języków wymienionych w punkcie 3.5, biblioteki konieczne do kompilacji oraz uruchamiania programów, debugger, kalkulator, dokumentacja do wymienionych elementów. Szczegółowy wykaz organizatorzy opublikują na stronie WWW Mistrzostw. 

3.11. Uczestnicy mogą korzystać z własnych materiałów w formie papierowej, np. książek, wydruków programów, notatek. Nie jest dozwolone korzystanie z materiałów zapisanych w formie elektronicznej. Zabronione jest też korzystanie z wszelkiego rodzaju urządzeń elektronicznych (poza dostarczonym przez organizatorów komputerem), w szczególności z kalkulatorów, przenośnych komputerów, telefonów komórkowych, itp. 

3.12. Zawodnikom w czasie zawodów wolno komunikować się jedynie z członkami swojej drużyny, wyznaczonym personelem pomocniczym oraz sędziami. Kontakt z innymi osobami (w szczególności z trenerem lub zawodnikami innych drużyn) jest zabroniony pod groźbą dyskwalifikacji. Personel pomocniczy może pomagać uczestnikom w przypadku wystąpienia problemów związanych ze stanowiskiem pracy i środowiskiem programistycznym (np. wyjaśniając komunikaty o błędach systemowych), ale nie będzie i nie jest upoważniony do pomocy dotyczącej treści zadań. 

3.13. W trakcie zawodów, przez pierwsze cztery godziny trwania sesji, do publicznej wiadomości jest na bieżąco podawany aktualny ranking drużyn. Przez ostatnią godzinę jedyne informacje jakie będą otrzymywać drużyny to oceny ich własnych rozwiązań. 

3.14. Po zakończeniu zawodów zostaną przedstawione oficjalne wyniki.

4. Komisja sędziowska Mistrzostw

4.1. Skład sędziowski i Sędziego Głównego wyznacza Komitet Organizacyjny. W składzie sędziowskim będzie co najmniej jedna osoba z każdej z instytucji organizujących Mistrzostwa. 

4.2. Skład sędziowski jest upoważniony do zmiany regulaminu w chwili zajścia nieprzewidzianych wypadków. Decyzje składu sędziowskiego są ostateczne i nie podlegają apelacji. 

4.3. Sędziowie zawodów są odpowiedzialni za ocenę prawidłowości rozwiązań zadań. Sędzia Główny, konsultując decyzje z pozostałymi sędziami, odpowiada za wyłonienie zwycięzców.

5. Kryteria i tryb oceny rozwiązań zadań

5.1. Drużyny przedstawiają sędziom, poprzez Sprawdzarkę, rozwiązania zadań w czasie trwania zawodów.

5.2. Rozwiązania zadań są oceniane na bieżąco, automatycznie przez Sprawdzarkę, na podstawie przygotowanych przez sędziów testów. Każde rozwiązanie przedstawione do oceny jest albo akceptowane, jeżeli dla wszystkich testów daje poprawnie wyniki w rozsądnym według opinii sędziów czasie (komunikat: Accepted), albo odrzucane, a drużyna jest powiadamiana o tej ocenie. Przyczyna odrzucenia rozwiązania jest określana jednym z następujących komunikatów:

  • Compile Error (błąd kompilacji)
  • Runtime Error (błąd wykonania)
  • Time Limit Exceeded (przekroczony limit czasu)
  • Wrong Answer (błędna odpowiedź)
  • Rule Violation (naruszenie zasad zawodów)
  • Memory Limit Exceeded (przekroczony limit pamięci)
  • Output Limit Exceeded (przekroczona wielkość pliku wyjścia)

5.3. Jeżeli rozwiązanie nie zostanie zaakceptowane, drużyna może przedstawić kolejną wersję rozwiązania. 

5.4. Drużyny są szeregowane na podstawie liczby poprawnie rozwiązanych zadań. O kolejności drużyn posiadających tę samą liczbę rozwiązanych zadań decyduje suma czasów rozwiązywania zadań. Za czas rozwiązania zadania przyjmuje się czas, jaki upłynął od początku zawodów do momentu przedstawienia zaakceptowanego rozwiązania, powiększony o karę 20-tu minut za każde przedstawienie błędnego rozwiązania. Łączny czas rozwiązywania zadań jest obliczany tylko na podstawie poprawnie rozwiązanych zadań — kara związana z nierozwiązanymi zadaniami nie ma wpływu na wynik drużyny. 

5.5. Reguła z punktu 5.4, mówiąca o 20-to minutowej karze za przedstawienie błędnego rozwiązania, nie ma zastosowania do rozwiązań, które otrzymały komunikat Compile Error oraz Rule Violation

5.6. Komunikat Rule Violation może być podstawą do dyskwalifikacji drużyny jeżeli sędziowie uznają, że zachowanie programu go wywołujące było celowym działaniem drużyny lub mogło potencjalnie naruszyć bezpieczeństwo Sprawdzarki.