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 Akademickich Mistrzostwach Polski w Programowaniu Zespołowym czy w innego rodzaju konkursach takich jak Olimpiada Informatyczna.
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 każdy
zawodnik jest osobą urodzoną w roku 1986 lub później (na życzenie
organizatorów, zawodnicy muszą przedstawić dokument,
potwierdzający ich wiek). Zawodnicy w obu klasyfikacjach
będą nagradzani niezależnie (jest to dopuszczalne, ż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, brana jest pod uwagę 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.
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 prezentuje się 8–12 zadań
programistyczno-algorytmicznych,
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.
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
(należą do nich między innymi open, read, write,
fork, sleep), 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 automatycznie przez Sprawdzarkę
na bieżąco, 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)
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. Ponadto 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.