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 Contest, Akademickich 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 400 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 dwu- lub jednoosobowe.
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.