logo
Potyczki Algorytmiczne
Otwarty ogólnopolski konkurs programistyczny
  • Facebook
  • Mail
SIO2
Przejdź do systemu
organizator
Fundacja Rozwoju Informatyki
organizator
Uniwersytet Warszawski
współorganizator
Digital Technology Poland
sponsor
Huawei
sponsor
RTB
liczba uczestników
  • Aktualności
  • O konkursie
  • Przepisy
    • Regulamin
    • Ustalenia techniczne
    • Poliyka prywatności
  • Harmonogram
  • Linki
  • Dla prasy
  • Archiwum
Ustalenia techniczne

Do kompilowania rozwiązań w języku C++ używany będzie następujący kompilator:

  • G++ w wersji 12.2

Polecenie używane do kompilacji rozwiązań w języku C++ (np. zadania abc):

g++ -O3 -static abc.cpp -std=c++20

Do uruchamiania rozwiązań w języku Python używany będzie interpreter:

  • Python w wersji 3.11

Polecenie używane do uruchomienia rozwiązania w języku Python (zadanie abc):

python3 abc.py

W przypadku języka Python, komunikat „błąd kompilacji” oznacza błąd składni.

Nie jest możliwy inny sposób kompilacji (np. przy pomocy plików Makefile). Programy, które nie będą kompilować się w podany sposób, nie podlegają ocenie.

Ograniczenia:

  • kod źródłowy rozwiązania nie może przekraczać 100 KB, a kod wykonywalny 10 MB,
  • czas kompilacji rozwiązania nie może przekraczać 30 s,
  • wielkość pamięci operacyjnej dostępnej programom będzie podana w treści zadań (jednak ta wartość dotyczy sumarycznego zapotrzebowania na pamięć, a więc zawiera m.in. rozmiar kodu wykonywalnego, stosu, sterty itp.),
  • limit czasowy i pamięciowy dla każdego podzadania będzie podany w systemie SIO.

Rozwiązania powinny:

  • składać się z jednego pliku źródłowego o nazwie podanej w treści zadania, chyba że w treści zadania zaznaczono inaczej,
  • czytać dane ze standardowego wejścia, zapisywać wynik na standardowe wyjście, chyba że dla danego zadania wyraźnie napisano inaczej,
  • kończyć działanie kodem wyjścia 0 – każdy inny kod zakończenia programu jest równoważny błędowi wykonania,
  • zakładać, że są wykonywane na procesorze 64-bitowym.

Rozwiązania mogą:

  • korzystać z biblioteki standardowej (STL),
  • być napisane w standardzie C++20,
  • korzystać z biblioteki NumPy w języku Python,
  • wypisywać na standardowe wyjście diagnostyczne stderr (komunikaty wypisane w ten sposób są ignorowane przez system sprawdzający; należy jednak pamiętać, że takie wypisywanie zużywa cenny czas).

Rozwiązania nie mogą:

  • otwierać jakichkolwiek plików (w szczególności zabronione jest tworzenie plików tymczasowych),
  • tworzyć nowych procesów czy wątków,
  • korzystać z funkcji sieciowych (np. socket, send itp.),
  • naruszać bezpieczeństwa systemowego,
  • oczekiwać na interakcję użytkownika,
  • uruchamiać innych programów,
  • korzystać z zewnętrznych bibliotek (oprócz dozwolonych bibliotek dla C++ i Pythona), chyba że treść zadania wskazuje inaczej. Dotyczy to również bibliotek dołączanych przez opcje kompilatora.

Rozwiązania w języku C++:

  • nie powinny używać plików nagłówkowych typowych dla środowiska DOS/Windows, np. conio.h czy windows.h,
  • nie powinny używać niestandardowych argumentów do funkcji printf, takich jak %D czy %F,
  • w przypadku korzystania tylko z wejścia/wyjścia strumieniowego (iostream) radzimy na początku programu wykonywać instrukcje:
std::ios_base::sync_with_stdio(false);
std::cin.tie(NULL);

oraz wypisywać końce linii jako \n (a nie endl). Służy to zwiększeniu efektywności operacji wejścia/wyjścia.

FINAŁ

Podczas finału zawodnicy będą rozwiązywać zadania na dostarczonych przez organizatorów komputerach. Jedynym systemem operacyjnym dostępnym na tych komputerach będzie Linux. W trakcie zawodów zabronione jest korzystanie z Internetu, a także przyniesionych ze sobą książek, notatek, wydruków, telefonów komórkowych, laptopów oraz innych źródeł, które mogłyby zakłócić uczciwy przebieg zawodów.

KONTAKT: potyczki@mimuw.edu.pl
  • Facebook
Potyczki Algorytmiczne
projekt: creatornia.pl | realizacja: Mikołaj Walczak
nabicie klimatyzacji: Michalina Sidor
© All rights reserved 2016. POTYCZKI ALGORYTMICZNE