Sprawy techniczne

Ustalenia techniczne

  1. Treści zadań będą sformułowane w języku polskim.
  2. Każdy uczestnik ma do dyspozycji jedne komputer na którym zainstalowane jest oprogramowanie i inne elementy niezbędne lub przydatne do rozwiązywania zadań.
  3. Uczestnicy mogą korzystać z własnych materiałów w formie papierowej, np. książek, wydruków programów, notatek. Nie jest dozwolone korzystanie z materiałów zapisanych w formie elektronicznej. Zabronione jest też korzystanie z wszelkiego rodzaju urządzeń elektronicznych (poza dostarczonym przez organizatorów komputerem), w szczególności z kalkulatorów, przenośnych komputerów, telefonów komórkowych, tabletów, smartwatchy, itp…
  4. Uczestnicy nie mogą komunikować się z nikim podczas trwania Zawodów.
  5. Rozwiązania zadań mogą być zgłaszane w następujących językach programowania: Pascal, C, C++, Java.
  6. Polecenia kompilacji dla poszczególnych języków programowania są następujące:
    1. fpc -O2 -XS -Xt -o output program.pas
    2. gcc -O2 -static program.c -lm
    3. g++ -O2 -static program.cpp -lm
    4. javac Program.java
  7. Do kompilowania rozwiązań używane będą kompilatory:
    1. $ gcc –version
      gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16)
    2. $ g++ –version
      g++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-11)
    3. $ fpc
      Free Pascal Compiler version 3.0.2 [2017/02/06] for i386
    4. $ javac -version
      javac 1.8.0_131
  8. W rozwiązaniach zabronione jest używanie wstawek asemblerowych.
  9. Ograniczenia:
    1. kod źródłowy rozwiązania nie może przekraczać 100 KB
    2. czas kompilacji rozwiązania nie może przekraczać 30s
    3. wielkość pamięci operacyjnej dostępnej programom oraz limit czasu działania na pojedynczym zestawie danych testowych będą podane na stronie dotyczącej zadania w systemie
  10. Rozwiązania powinny:
    1. składać się z jednego pliku źródłowego
    2. czytać dane ze standardowego wejścia, zapisywać wynik na standardowe wyjście
    3. kończyć działanie kodem wyjścia 0, inne kody wyjścia uznawane są błędy wykonania
    4. w przypadku rozwiązań w języku Java być zapisane w pliku, którego nazwa jest zgodna z nazwą publicznej klasy zawierającej metodę main()
  11. Rozwiązania nie mogą:
    1. otwierać jakichkolwiek plików
    2. tworzyć jakichkolwiek dodatkowych procesów i wątków
    3. korzystać z funkcji sieciowych
    4. korzystać z zewnętrznych bibliotek (np. boost w C++ itp.)
    5. uruchamiać innych programów
  12. Ograniczenia czasu i ilości dostępnej pamięci są przypisane do zadań, tj. będą takie same w czasie wszystkich uruchomień rozwiązań danego zadania.
  13. Jeżeli rozwiązanie nie zostanie zaakceptowane, komunikaty dotyczące błędów otrzymanych dla poszczególnych zestawów danych testowych będą dostępne po wyświetleniu szczegółów danego zgłoszenia.
  14. Komputery uczestników będą wyposażone w 64-bitowy system operacyjny Windows 10 z następującym oprogramowaniem:
    1. Code::Blocks
    2. FreePascal
    3. Java JDK, Eclipse, Netbeans, InteliJ Idea CE
    4. edytory: Geany, NotePad++
    5. przeglądarki: Firefox, Chrome