Cele i założenia Ligi Zadaniowej oraz Regulamin
Uwagi ogólne
Corocznie wysyłane są drużyny reprezentujące Politechnikę Śląską na
Akademickie Mistrzostwa Polski w Programowaniu Zespołowym
oraz na Międzynarodowy Konkurs w Programowaniu Zespołowym
organizowany pod patronatem ACM. W związku z dużą liczbą chętnych
konieczne jest przeprowadzenie eliminacji wstępnych. Pierwszym ich etapem jest
Liga Zadaniowa, która rozpoczyna swą działalność
15 listopada 2004 roku.
Od tego momentu przedstawiane będą zadania,
które należy rozwiązywać przed wyznaczonym terminem. Po upływie
każdego terminu, na podstawie uzyskanych wyników zawodnicy będą otrzymywali
pewną liczbę punktów rankingowych. Po zakończeniu
Ligi (okolice maja lub czerwca 2005 roku - dokładny termin zostanie
ustalony w późniejszym czasie) uzyskane wyniki zostaną podsumowane.
Na podstawie wyników Ligi i konkursów przeprowadzonych w ramach
wewnętrznych eliminacji zostaną wyłonione osoby, z
których zostanie utworzona 1-2 drużyny reprezentujące naszą uczelnię na
mistrzostwach krajowych oraz na konkursie międzynarodowym. Każda drużyna składa się
maksymalnie z 3 osób. Dokładana liczba drużyn zostanie ustalona przed samymi mistrzostwami.
Rejestracja
Aby wziąć udział w Lidze Zadaniowej należy się zarejestrować przysyłając na adres
Kierownika Ligi
następujące dane:
- Dla studentów:
- imię i nazwisko,
- wydział,
- kierunek,
- rok studiów,
- e-mail kontaktowy,
- proponowany login,
- hasło
- Dla uczniów:
- imię i nazwisko,
- dokładna nazwa szkoły,
- miasto,
- klasa,
- e-mail kontaktowy,
- proponowany login,
- hasło
Wszystkie listy wysyłane do Kierownika Ligi powinny mieć zaznaczone w temacie,
że dotyczą Ligi Zadaniowej.
Zadania ligowe
Wszystkie zadania ligowe są dostępne na stronie
systemu oceniającego.
Zadania należy rozwiązywać w języku Pascal (nie wolno używać żadnych modułow za
wyjątkiem modułu System, który jest dołączany domyślnie), C lub C++ (dozwolone
jest używanie biblioteki STL).
Dane wejściowe są pobierane ze standardowego wejścia natomiast dane wyjściowe
powinny zostać wysłane na standartowe wyjście. Nie będą akceptowane rozwiązania
w których dane wejściowe są odczytywane z pliku a dane wyjściowe zapisywane do
pliku. Format danych wejściowych i wyjściowych jest podany w specyfikacji zadania.
Można przyjąć, że dane wejściowe są poprawne. Program powinien odczytywać tylko
te dane, które są wyszczególnione w specyfikacji wejściowej. Program nie może
odczytywać żadnych innych dodatkowych danych (np. nie jest dopuszczalne po
wyświetleniu wyników oczekiwanie na naciśniecie klawisza ENTER, oczekiwanie na
wybór jakiejś opcji - np. "czy pobrać kolejne dane" albo
"czy zakończyć działanie programu", itp.). Program powinien wysłać na standardowe
wyjście tylko te dane, które są wyspecyfikowane w specyfikacji wyjściowej zadania
(np. nie jest dopuszczalne wypisywanie tekstów postaci "Podaj dane wejściowe:",
"Input:", "Wynik rozwiązania:", itp.).
Dla wszystkich zadań ustalono jednakowy limit dostępnej pamięci operacyjnej
wynoszący 16MB.
Do kompilacji zaleca się użycia kompilatorów 32 bitowych. Rozwiązania nadesłane
do oceny kompilowane są za pomocą kompilatorów (wersje co najmniej takie jakie
są wypisane, mogą być nowsze:
- gcc 3.3.5 - dla języka C
- g++ 3.3.5 - dla języka C++
- gpc based on gcc 3.3.3 - dla języka Pascal
Jeżeli ktoś używa innego kompilatora (np. BC++ 3.1) to należy pamietać o tym,
aby w rozwiązaniu nie stosować elementów języka wprowadzonych przez ten kompilator
(np. specyfikator huge dostępny w BC++ 3.1). W przypadku niektórych kompilatorów można
(należy) wyłączyć w ich opcjach rozszerzenia języka, gdyż mogą one zależeć od danej
implementacji - a więc nie działać w innych (np. w używanym na serwerze kompilatorze GCC).
Ocena rozwiązań
Zadania oceniane są automatycznie za pomocą
systemu oceniającego.
Rozwiązania wysyłane są przez zawodników do systemu oceniającego po uprzednim
zalogowaniu się przy użyciu loginu i hasła podanych podczas rejestracji.
Do oceny należy przysyłać wyłącznie teksty źródłowe programów. Programy wykonywalne
(skompilowane) nie będą oceniane. Rozwiązanie może uzyskać jedną z ocen:
- compile time error - programu nie udało się skompilować,
- run-time error - program przerwał działanie dla danych testowych,
- time limit exceeded - program przekroczył limit czasu przewidziany na
rozwiązanie zadania (ten błąd wystąpi także jeżeli program się "zawiesi"),
- wrong answer - program podał błędną odpowiedź na któryś z testów,
- presentation error - wyniki wyglądają na poprawne, ale są sformatowane
niezgodnie ze specyfikacją w treści zadania,
- accepted - rozwiązanie jest poprawne i zostało zaakceptowane.
W przypadku uzyskania oceny negatywnej (ocena różna od accepted) można przysłać
ponownie poprawione rozwiązanie.
Termin nadsyłania rozwiązań jest nieprzekraczalny.
Punkty rankingowe
Za każde poprawnie i w terminie rozwiązane zadanie zawodnicy otrzymują pewna
liczbę punktów. Liczba punktów będzie podawana wraz z treścią zadania.
Zawodnicy
W zawodach w programowaniu zespołowym, mogą startować studenci wszystkich
lat, pod warunkiem, że nie ukończyli oni wcześniej żadnych innych studiów.
W Lidze mogą również startować uczniowie szkół średnich.
Uczciwość
Zakładamy, że każdy z zawodników będzie rozwiązywał zadania indywidualnie.
Przekazywanie swoich rozwiązań kolegom nie leży w interesie zawodnika, bo u
podstaw Ligi, jak również ostatecznego wyboru kandydatów na mistrzostwa leży
zasada konkurencji. Innymi słowy, chcemy aby na mistrzostwa pojechali zawodnicy
najlepsi, którzy potrafią najlepiej reprezentować naszą uczelnię!
Wszelkiego rodzaju próby włamań do systemu oceniającego zakończą się
dyskwalifikacją zawodnika.
|