Cele i założenia Ligi Zadaniowej



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ść 19 listopada 2001 roku. Od tego momentu w odstępach miesięcznych przedstawiane będzie jedno lub dwa trudniejsze zadania, które należy rozwiązywać przed wyznaczonym terminem. Po upływie każdego miesiąca, na podstawie uzyskanych wyników zawodnicy będą otrzymywali pewną liczbę punktów rankingowych. Po zakończeniu Ligi (okolice maja 2002 roku - dokładny termin zostanie ustalony w późniejszym czasie) uzyskane wyniki zostaną podsumowane i na ich podstawie zostaną wybrane osoby, które będą uczestniczyły w wewnętrznych eliminacjach prowadzonych w sposób zbliżony do właściwych zawodów. Na podstawie wyników Ligi i konkursów przeprowadzonych w ramach 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 nie jest konieczna rejestracja na serwerze w Hiszpanii, tak jak to było w poprzednich edycjach. Aby się zarejestrować należy przysłać na adres Kierownika Ligi następujące dane:

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 Ligi Zadaniowej.

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++ (bez STL). Plik z tekstem rozwiązania powinien mieć taką samą nazwę jak numer zadania, tzn. jeżeli jest to np. rozwiązanie zadania nr 2 to plik powinien mieć nazwę 2.c (dla rozwiązania w języku C), 2.cpp (dla rozwiązania w C++) lub 2.pas (dla rozwiązania w języku Pascal). Pierwszy wiersz w pliku z rozwiązaniem powinien zawierać imię i nazwisko autora rozwiązania.

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 DJGPP (gcc) i FreePascal. 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).


Ocena rozwiązań

Propozycje rozwiązań należy przesyłać do oceny na adres Kierownika Ligi. Do oceny należy przysyłać wyłącznie teksty źródłowe programów. Programy wykonywalne (skompilowane) nie będą oceniane a zawodnik otrzyma punkty karne!!! Ocena zostanie odesłana w ciągu 2 dni od chwili otrzymania rozwiązania. W przypadku nieotrzymania oceny rozwiązania w wyżej wymienionym terminie należy niezwłocznie poinformować o tym Kierownika Ligi. Rozwiązanie może uzyskać jedną z ocen: 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, chyba że zawodnik udokumentuje fakt wysłania rozwiązania w określonym terminie, a ze względów od niego niezależnych dotrze ono do Kierownika Ligi w terminie późniejszym. O takich sytuacjach należy informować Kierownika Ligi w terminie 3 dni.


Punkty rankingowe

Za każde poprawnie i w terminie rozwiązane zadanie zawodnicy otrzymują 1 punkt. Za każde błędne rozwiązanie zawodnicy otrzymują punkty karne w wysokości 0.05. Tak więc za zadanie zaakceptowane w drugiej próbie można otrzymać 0.95 punkta, za zadanie zaakceptowane w trzeciej próbie 0.9 punkta, itd. Jednak minimalna liczba punktów jakie można otrzymać za zadanie wynosi 0.5. Tak więc za zadanie zakaceptowane w piętnastej próbie otrzymuje się 0.5 punkta a nie 0.3 tak jak to wynika z obliczeń (1 - 0.05 * 14).

Punkty karne są uwzględniane tylko w przypadku nadesłania poprawnego rozwiązania w jednej z kolejnych prób. Tak więc jeżeli żadne z kolejnych nadesłanych rozwiązań nie będzie poprawne, zawodnik nie otrzyma ujemnych punktów.


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 skład drużyny może jednak wchodzić tylko jedna osoba z roku wyższego niż trzeci (w momencie rozgrywania mistrzostw krajowych lub międzynarodowych).
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ę!

wstecz