Zawody w programowaniu zespołowym

Z Wikipedii, wolnej encyklopedii

Zawody w programowaniu zespołowym – typ zawodów sportowych polegający na rozwiązywaniu zadań programistyczno-algorytmicznych. Zawody takie organizowane są zwykle na wzór ACM ICPC; wtedy w zawodach udział biorą 3-osobowe drużyny, które mając do dyspozycji własne materiały w formie papierowej i jeden komputer bez dostępu do Internetu mają za zadanie w ciągu 5 godzin rozwiązać zestaw problemów. Zgłaszane rozwiązania są oceniane automatycznie przez system sprawdzający, a uczestnicy są natychmiast powiadamiani o wyniku sprawdzenia.

Rozwiązania zadań[edytuj | edytuj kod]

Po napisaniu rozwiązania zadania drużyna wysyła je do systemu sprawdzającego, który ocenia je pod kątem poprawności kompilacji, poprawności uruchomienia, czasu działania, poprawności odpowiedzi, wykorzystania stosu i sterty oraz wielkości wyjścia. W przypadku niespełnienia któregoś z tych wymagań rozwiązanie zostaje odrzucone, otrzymując odpowiedni komunikat:

  • 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)

W przypadku gdy rozwiązanie spełniło wszystkie zadane kryteria zostaje przyjęte i otrzymuje komunikat:

  • Accepted (poprawna odpowiedź)

Kryteria oceniania[edytuj | edytuj kod]

Wygrywa drużyna, która rozwiąże największą liczbę zadań, a w przypadku gdy liczba zadań będzie równa, ta która rozwiązała zadania w najkrótszym czasie sumarycznym (czas ten jest liczony jako suma czasów rozwiązania wszystkich zaakceptowanych 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 minut za każde przedstawienie błędnego rozwiązania (wysłanego przed rozwiązaniem zaakceptowanym). Łą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.

Zobacz też[edytuj | edytuj kod]