Kwalifikacje AMPPZ / CERC
  
Strona główna
Regulamin zawodów:

1. Informacje ogólne

1.1. Zawody składają się z sesji próbnej oraz zawodów właściwych.

1.2. Zawody polegają na napisaniu przez uczestników programów rozwiązujących zaprezentowane w trakcie zawodów zadania.

1.3. Treść każdego z zadań będzie składała się z następujących części:

  • opis problemu
  • warunki wykonania (ograniczenia)
  • opis formatu danych wejściowych
  • opis formatu danych wyjściowych
  • przykład

1.4. Każdy z zawodników dostanie treść wszystkich zadań w formie papierowej.

1.5. Podczas zawodów każdy z uczestników będzie miał do dyspozycji zestaw komputerowy pracujący pod kontrolą systemu operacyjnego Linux wyposażony w (co najmniej) następujące oprogramowanie: kompilatory gcc, g++; edytory emacs, pico, mcedit, vim, kate; program uruchomieniowy gdb; standardowe narzędzia tekstowe grep; graficzną przeglądarkę internetową; dostęp do Systemu Obsługi Kwalifikacji (SOK).

1.6. Zawody będą przeprowadzane w środowisku sieciowym. Sieć służy do przesyłania rozwiązań. Używanie sieci do innych celów, np. zdalne logowanie, ftp, telnet i inne jest zakazane i może spowodować dyskwalifikację. Każdy zawodnik, który znajdzie lukę w systemie ochrony, jest zobowiązany powiadomić o tym niezwłocznie personel pomocniczy zawodów.

1.7. Hasła dostępu zostaną podane zawodnikom przed rozpoczęciem zawodów. Hasło pozwala na zalogowanie się na daną stację oraz do systemu SOK.

1.8. Udział uczestników w zawodach jest możliwy dzięki Systemowi Obsługi Kwalifikacji (SOK). SOK składa się z:

  • tablicy informacyjnej - zawiera aktualizowane na bieżąco istotne informacje dotyczące konkursu
  • tablicy pytań i odpowiedzi - zawiera odpowiedzi na zadane przez zawodnika pytania
  • rankingu - zawiera aktualny ranking zawodników wyliczany zgodnie z kryteriami oceny zadań
  • tablicy zgłoszeń - umożliwia wysyłanie przez zawodnika rozwiązań (zgłoszeń) do oceny, zawiera również historię zgłoszeń danego zawodnika

1.9. Wszelkie pytania merytoryczne do zadań należy zgłaszać tylko i wyłącznie za pośrednictwem SOK.

1.10. Wszelkie problemy techniczne należy zgłaszać wyznaczonemu personelowi pomocniczemu (przez podniesienie ręki).

2. Informacje dotyczące zgłaszania rozwiązań

2.1. Każde zgłoszenie rozwiązania zadania musi spełniać następujące warunki:

  • rozwiązanie musi składać się z pojedynczego pliku z kodem źródłowym w jednym z języków programowania: C lub C++
  • program nie może korzystać z plików dodatkowych oraz nie może tworzyć plików tymczasowych
  • w programie nie można używać bibliotek wykraczających poza standard języka C++
  • program musi pobierać dane wejściowe, zgodnie z formatem zaprezentowanym w treści zadania, ze standardowego wejścia (dla języka C ze strumienia stdin, dla języka C++ ze strumienia cin)
  • program musi wyprowadzać wyniki na standardowe wyjście, zgodnie z formatem zaprezentowanym w treści zadania (dla języka C do strumienia stdout, dla języka C++ do strumienia cout)
  • program musi zwracać do środowiska wartość 0 (return 0;)
  • program musi zwrócić wynik w czasie nie przekraczającym limitu przewidzianego dla danego zadania
  • program nie może tworzyć procesów potomnych

2.2. Wysyłane za pośrednictwem SOK pliki z rozwiązaniami zadań muszą mieć odpowiednie rozszerzenia:

  • dla języka C jedynym dopuszczalnym rozszerzeniem jest: c (*.c)
  • dla języka C++ jedynym dopuszczalnym rozszerzeniem jest: cpp (*.cpp)

2.3. Pliki z rozwiązaniami będą kompilowane przy użyciu następujących poleceń:

  • dla języka C: gcc nazwa_pliku_z_rozwiązaniem -o a.out -lm -m32
  • dla języka C++: g++ nazwa_pliku_z_rozwiązaniem -o a.out -lm -m32

3. Informacje dotyczące oceny zgłoszeń

3.1. Wszystkie zgłoszenia rozwiązań nadesłane w dopuszczalnym czasie zostaną ocenione.

3.2. Zgłoszenia są oceniane na bieżąco w kolejności nadsyłania.

3.3. Nieocenione zgłoszenia są widoczne jako zgłoszenia "Oczekujące".

3.4. Każde zgłoszenie nadesłane do oceny jest albo akceptowane, albo odrzucane, a zawodnik jest powiadamiany o tej ocenie. Przyczyna odrzucenia rozwiązania jest określana jednym z następujących komunikatów:

  • błąd kompilacji - kompilacja zgłoszenia zakończyła się niepowodzeniem
  • przekroczony limit czasu - program nie zakończył się w dozwolonym limicie czasu
  • błędna odpowiedź - zwrócony przez program wynik jest niepoprawny
  • błąd wykonania

3.5. Dopuszczalny rozmiar kodu źródłowego rozwiązania nie może przekraczać 200kB.

3.6. Proces odpowiadający rozwiązaniu nie może zajmować ponad 100MB pamięci operacyjnej.

3.7. Jeżeli zgłoszenie nie zostanie zaakceptowane, zawodnik może przedstawić kolejną wersję rozwiązania.

3.8. Zawodnicy są szeregowani na podstawie liczby poprawnie rozwiązanych zadań. O kolejności zawodników posiadających tę samą liczbę rozwiązanych zadań decyduje łączny czas rozwiązywania zadań. Za czas rozwiązania zadania przyjmuje się czas, jaki upłynął od początku zawodów do momentu przedstawienia poprawnego rozwiązania, powiększony o karę 10 minut za każde przedstawienie błędnego rozwiązania tego zadania. Łączny czas rozwiązywania zadań jest obliczany tylko na podstawie zaakceptowanych rozwiązań - kara związana z nierozwiązanymi zadaniami nie ma wpływu na wynik zawodnika.

4. Sesja próbna

4.1. Przed właściwymi zawodami zostanie przeprowadzona sesja próbna.

4.2. Celem sesji próbnej jest umożliwienie uczestnikom zapoznania się ze środowiskiem programistycznym (sieć komputerowa, kompilatory, tryb oceniania zadań, system SOK, itp.).

4.3. W trakcie sesji próbnej uczestnicy będą mogli podjąć próbę rozwiązania jednego przykładowego zadania.

4.4. Wyniki sesji próbnej nie mają żadnego wpływu na końcową klasyfikację zawodników.

4.5. W trakcie sesji próbnej dozwolone jest komunikowanie się między zawodnikami.

5. Przebieg zawodów właściwych

5.1. Podczas zawodów właściwych zawodnicy będą mieli do rozwiązania 4 zadania.

5.2. Zawody trwają cztery godziny od momentu ich rozpoczęcia. Czas pozostały do końca zawodów będzie na bieżąco podawany w SOK. W przypadku wystąpienia nieprzewidzianych trudności czas trwania konkursu może zostać przedłużony. Decyzje o przedłużeniu zawodów podejmują Organizatorzy.

5.3. Zawody odbywają się zgodnie z szeroko pojętymi zasadami fair play.

5.4. Zawodnikom w czasie zawodów wolno komunikować się jedynie z wyznaczonym personelem pomocniczym. Każdy kontakt z innymi osobami (w szczególności z innymi zawodnikami) jest zabroniony pod sankcją dyskwalifikacji. Personel pomocniczy może pomagać uczestnikom tylko w przypadku wystąpienia problemów związanych ze środowiskiem programistycznym, np. wyjaśniając komunikaty o błędach systemowych.

5.5. Działanie na szkodę innych zawodników jest niedozwolone pod sankcją dyskwalifikacji.

5.6. Zawodnicy mogą korzystać z własnych materiałów: książek, wydruków programów, notatek. Nie jest dozwolone korzystanie z nośników elektronicznych, kalkulatorów, przenośnych komputerów, komórek, itp.

5.7. Po zawodach możliwe będzie skopiowanie przygotowanych przez siebie rozwiązań na własny nośnik elektroniczny.

5.8. Po zakończeniu zawodów właściwych zostaną przedstawione oficjalne wyniki.

5.9. Zwycięzcy zostaną wyłonieni przez Organizatorów, przy czym podstawą do wyłonienia zwycięzców będzie ranking.

6. Postanowienia końcowe

6.1. W sprawach spornych (nie objętych regulaminem) decyzje podejmują Organizatorzy w duchu fair play.

6.2. Decyzje Organizatorów są ostateczne.

  
Opracowanie strony: Zbigniew Szymański