VIII Mistrzostwa WWSI w Programowaniu

Regulamin

  1. Cel zawodów:
    1. Celem zawodów jest propagowanie idei programowania wśród użytkowników systemu SPOJ. Zawody są okazją do zademonstrowania i doskonalenia swoich umiejętności w rozwiązywaniu zadań algorytmicznych, są one jednocześnie doskonałą zabawą intelektualną.
  2. Uczestnicy:
    1. W zawodach mogą wziąć udział wszystkie osoby posiadające konto w systemie SPOJ.
    2. Zawodnicy zostaną podzieleni na 3 kategorie:
      • WWSI
      • IT Szkoła
      • Open
    3. Studenci Warszawskiej Wyższej Szkoły Informatyki mają obowiązek zarejestrować się w kategorii WWSI.
    4. Uczniowie uczestniczący w programie IT Szkoła mają obowiązek zarejestrować się w kategorii IT Szkoła.
    5. Pozostałe osoby startują w kategorii Open.
    6. Osoby chętne do wzięcia udziału w zawodach powinny postępować zgodnie z instrukcjami zamieszczonymi na stronie dotyczącej rejestracji.
    7. Dana osoba może się zarejestrować tylko raz.
  3. Przebieg zawodów:
    1. Zawody rozpoczynają się dnia 5 marca 2016, a kończą 19 marca 2016.
    2. Zawody dzielą się na dwie rundy.
    3. Obydwie rundy zostaną rozegrana zdalnie. Wyjątek stanowi 2 runda w kategorii WWSI, która to odbędzie się w siedzibie Warszawskiej Wyższej Szkoły Informatyki.
    4. Podział rund przedstawia się następująco:
      • Runda 1: 2016.03.05 (sobota) 12:00 - 2015.03.16 (środa) 23:59
      • Runda 2: 2016.03.19 (sobota) 10:00 - 15:00
    5. Na początku lub w trakcie trwania każdej rundy zostanie przedstawiony zbiór nowych zadań algorytmicznych do rozwiązania.
    6. Rozwiązania zadań można nadsyłać do czasu zakończenia rundy, w której zostały opublikowane.
    7. Podczas trwania rund dostępny będzie ranking zawodników, wspólny dla wszystkich kategorii.
    8. Do finału zakwalifikowanych zostanie:
      • 10 najlepszych zawodników (według rankingu) w kategorii WWSI
      • 10 najlepszych zawodników (według rankingu) w kategorii IT Szkoła
      • 20 najlepszych zawodników (według rankingu) w kategorii Open
    9. Wyniki rundy 1 nie będą brane pod uwagę w rundzie 2 (finałowej).
  4. Wysyłanie i ocenianie rozwiązań:
    1. Treści zadań sformułowane są w języku polskim.
    2. Rozwiązania zadań w postaci kodów źródłowych zawodnicy przesyłają za pomocą formularza na stronie zawodów w systemie SPOJ.
    3. Rozwiązania zadań muszą być samodzielne.
    4. Każde rozwiązanie zgłoszone do oceny uruchamiane jest dla kilku testów. Wynik każdego testu jest zaakceptowany albo odrzucony. Test zostaje zaakceptowany gdy zgłoszone rozwiązanie działa w wyznaczonych limitach czasowych i pamięciowych oraz wypisuje poprawne odpowiedzi zgodnie ze specyfikacją podaną w treści zadania. Rozwiązanie zostaje zaakceptowane gdy zaakceptowane zostaną wyniki wszystkich testów, dla których zostało uruchomione. Jeżeli rozwiązanie nie zostanie zaakceptowane zawodnik otrzyma jeden z poniższych komunikatów określający przyczynę:
      • Błąd kompilacji (CE)
      • Błąd wykonania (RE)
      • Przekroczono limit czasu (TLE)
      • Błędna odpowiedź (WA)
    5. O wyniku każdego zgłoszonego rozwiązania zawodnicy dowiadują się bezpośrednio po jego wysłaniu.
    6. Zawodnik otrzymuje za każde zaakceptowane rozwiązanie 1 punkt.
    7. Ranking ustalany jest na podstawie ilości zdobytych punktów (im więcej punktów tym wyższa pozycja). W przypadku gdy dwóch albo większa liczba zawodników ma tyle samo punktów pod uwagę brany jest sumaryczny czas rozwiązania zaakceptowanych zadań (im mniejszy czas tym wyższa pozycja).
  5. Szczegóły techniczne:
    1. Każde rozwiązanie zadania musi składać się z pojedynczego pliku zawierającego kod źródłowy w jednym z języków programowania dostępnych w systemie SPOJ.
    2. Limity czasowe zostały ustalone na bazie rozwiązań wzorcowych napisanych w języku C++. Dopuszczalny maksymalny czas wykonania programu jest dłuższy od czasu działania rozwiązania wzorcowego. Organizatorzy nie gwarantują jednak, że ustalone limity czasowe będą wystarczające dla wszystkich dostępnych języków programowania.
    3. Lista kompilatorów oraz interpreterów jakie będą używane podczas zawodów dostępna jest w systemie SPOJ pod adresem http://www.spoj.com/ranks/languages/
    4. Skompilowane programy nie mogą:
      • Odczytywać lub zapisywać danych z plików/strumieni innych niż standardowe wejście/wyjście.
      • Tworzyć procesów potomnych ani wątków.
    5. Limity czasowe są jawne i zostaną określone w treści zadań.
    6. Domyślny limit pamięci dla wszystkich zadań wynosi 1536MB. W przypadku gdy limit pamięci różni się od domyślnego zostanie to jawnie określone w treści zadania.
    7. Kod źródłowy programu nie może być większy niż 50000B.
    8. Programy powinny wczytywać dane ze standardowego wejścia i wypisywać wyniki na standardowe wyjście.
    9. Dane wczytywane są zawsze poprawne, czyli zgodne ze specyfikacją wejścia podaną w treści każdego z zadań.
  6. Inne:
    1. Ewentualne spory dotyczące oceny rozwiązań rozstrzygają organizatorzy zawodów, ich ustalenia są ostateczne i nie podlegają apelacji.
    2. Organizatorzy zastrzegają sobie prawo dokonania ponownej kompilacji i oceny rozwiązania zadania przesłanego wcześniej.
    3. Organizatorzy zastrzegają sobie możliwość zmiany regulaminu.
    4. Uczestnicy nieprzestrzegający regulaminu mogą zostać zdyskwalifikowani.
    5. Organizatorzy zastrzegają sobie możliwość opublikowania wybranych rozwiązań wysłanych przez użytkowników po zakończeniu zawodów.