Indywidualne Zawody w Programowaniu - regulamin zawodów

Uwagi ogólne

  • W zawodach mogą brać udział wyłącznie studenci Politechniki Śląskiej oraz uczniowie szkół ponadpodstawowych. Aby wziąć udział w zawodach należy przysłać na adres Kierownika Ligi zgłoszenie zawierające:
    • Dla studentów:
      • imię i nazwisko,
      • wydział,
      • kierunek,
      • rok studiów,
      • e-mail kontaktowy.
    • Dla uczniów:
      • imię i nazwisko,
      • dokładna nazwa szkoły,
      • miasto,
      • klasa,
      • e-mail kontaktowy.
  • Osoby zgłaszające chęć uczestnictwa w Zawodach wyrażają zgodę na umieszczenie na stronie wyżej wymienionych danych osobowych za wyjątkiem adresu e-mail.
  • W zawodach może startować maksymalnie 30 osób. Ograniczenie wynika z liczby dostępnych stanowisk komputerowych. O uczestnictwie w zawodach decyduje kolejność nadsyłania zgłoszeń.
  • Każda osoba będzie miała do dyspozycji jeden komputer.
  • Wolno korzystać z dowolnych materiałów nieelektronicznych (książki, notatki, wydruki kodów źródłowych).
  • Zabronione jest jednak używanie takich pomocy jak: kalkulatory, notebooki, telefony komórkowe i inne pomoce elektroniczne. Zabronione jest również korzystanie z poczty elektronicznej, WWW, telnet-a itp. Nieprzestrzeganie powyższych zasad zakończy się dyskwalifikacją zawodnika.
  • Właściwe zawody rozpoczynają się o godzinie 9:00 i trwają do 14:00. W związku z koniecznością rozlosowania miejsc w salach i przekazania ostatnich uwag o środowisku pracy zawodnicy powinni zebrać się o godzinie 8:30 na piątym piętrze.
  • Zawody zostaną przeprowadzone w salach: 521, 522, 523, 528, 528A.
  • Końcowe wyniki eliminacji zostaną podane około 30 minut po zakończeniu rozwiązywania zadań.
  • W czasie zawodów zabroniona jest jakakolwiek komunikacja pomiędzy zawodnikami.

Srodowisko pracy

  • Do dyspozycji zawodników będą komputery klasy PC.
  • Zawodnicy będą pracowali w środowisku Windows.
  • Zadania można rozwiązywać w językach Pascal, C, C++. Do dyspozycji zawodników będą kompilatory Visual Studio .NET, Borland Delphi.
  • Zadania będą oceniane automatycznie przez system oceniający, który jest także wykorzystywany do oceny zadań w ramach Ligi Zadaniowej.
  • Rozwiązania zadań można zgłaszać do oceny logując się do systemu oceniającego.

Zadania i sposób ich oceniania

  • Zawodnicy otrzymają do rozwiązania 6 zadań sformułowanych w języku polskim.
  • Dane wejściowe są podawane na standardowe wejście, a wyjściowe mają się pojawić na standardowym wyjściu.
  • Jeżeli w treści zadania nie jest zaznaczone inaczej, to należy założyć, że dane wejściowe są poprawne i nie należy tego sprawdzać.
  • Jeżeli w treści zadania nie zaznaczono inaczej, to każdy test ma tylko jedno poprawne rozwiązanie. Jeżeli zaś rozwiązań jest więcej, to jest wyraźnie zaznaczone, które należy wybrać.
  • Rozwiązania zadań należy zgłaszać do oceny do systemu oceniającego (patrz pkt. środowisko pracy).
  • Rozwiązanie będzie kompilowane w systemie Linux przy użyciu kompilatora gcc 3.3.5 (język C), g++ 3.3.5 (język C++) i gpc 3.3.3 (język Pascal) i wykonane na danych testowych. Jeżeli wyniki działania ocenianego rozwiązania będą identyczne z wynikami wzorcowymi, to zadanie zostaje zaliczone jako rozwiązanie. W przeciwnym razie zostanie odesłany zawodnikowi komunikat o zaistniałym błędzie. Możliwymi błędami są:
    • 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"),
    • memory limit exceeded - program przekroczył limit dostępnej pamięci,
    • wrong answer - program podał błędną odpowiedź na któryś z testów,
    • restricted function - zastosowano niedozwoloną funkcję.
  • Jeżeli program zostanie oceniony jako poprawny, to zawodnik otrzyma komunikat accepted.
  • Jeżeli powstaną wątpliwości dotyczące jakiegoś zadania, pytanie należy skierować pisemnie do sędziów. Następnie sędzia udzieli pisemnej odpowiedzi, która zostanie dostarczona wszystkim zawodnikom. Pytania powinny być tak sformułowane, aby była możliwość odpowiedzenia na nie tak / nie. W przeciwnym wypadku sędzia udzieli odpowiedzi bez odpowiedzi. Odpowiedź bez odpowiedzi będzie także udzielana na każde pytanie do którego odpowiedź wynika z treści zadania.

Ranking

  • W trakcie zawodów aktualne wyniki będą umieszczone na stronie w systemie oceniającym.
  • Ranking będzie tworzony na podstawie liczby rozwiązanych zadań. Zawodnicy, którzy rozwiązali taką samą liczbę problemów zostaną uszeregowani według sumarycznego czasu, który poświęcili na rozwiązywanie.
  • Czas poświęcony na rozwiązanie każdego zadania jest mierzony od początku konkursu do momentu przesłania poprawnego rozwiązania. Za każde błędne rozwiązanie zawodnik otrzymuje karę 20 minut dodawaną do czasu rozwiązywania zadania. Przy ustalaniu rankingu brany jest tylko czas poświęcony na problemy rozwiązane (tzn. kary czasowe za zadania, których zawodnik nie rozwiązał nie są brane pod uwagę).

Ograniczenia

  • Ogólne:
    • Dla wszystkich zadań ustalono jednakowy limit dostępnej pamięci operacyjnej wynoszący: 64 MB. Przekroczenie tych limitów spowoduje odrzucenie rozwiązania i przesłanie komunikatu o błędzie wykonania lub przekroczeniu dostępnej pamięci.
    • Dla każdego zadania ustalono limit czasu, w którym program powinien zakończyć działanie dla wszystkich testów. Limity dobrane są w taki sposób, aby akceptowalne były tylko rozwiązania o złożoności "zbliżonej" do optymalnej. W praktyce limity ustalono mnożąc czas wykonywania się programów wzorcowych przez czynnik 2-4.
    • Zabronione jest stosowanie wstawek asemblerowych.
  • Dla języka Pascal:
    • Nie wolno używać żadnych modułow za wyjątkiem System, który jest dołączany domyślnie i w związku z tym nie należy stosować uses.
  • Dla języka C/C++:
    • Program nie może tworzyć podprocesów oraz plików.
17.5.2024 - 15:05:09