Ogólnopolska Olimpiada
O Diamentowy Indeks AGH

al. A. Mickiewicza 30
30-059, Kraków

e-mail: diament@agh.edu.pl
tel. +48 12 617-32-63

Test z informatyki w I etapie XVII Ogólnopolskiej Olimpiady O Diamentowy Indeks AGH.

I etap XVII edycji Ogólnopolskiej Olimpiady O Diamentowy Indeks AGH z informatyki będzie przeprowadzony w formie elektronicznej na internetowej platformie OIOIOI. Aby wziąć udział w teście z informatyki należy dokonać rejestracji w systemie e-Diament.

18 października 2023 r. o godz. 20.00 upływa termin elektronicznej rejestracji z wszystkich przedmiotów. Nie należy zostawiać rejestracji na ostatnią chwilę.

Zadania I Etapu i sposób przesyłania rozwiązań

  1. W terminie podanym w harmonogramie (19-21.10.2023 r.) uczestnicy mają możliwość wprowadzenia rozwiązań zadań konkursowych. Wprowadzanie rozwiązań odbywa się przez platformę OIOIOI dostępną przez przeglądarkę internetową, po uprzednim zalogowaniu się do systemu e-Diament (login i hasło ustalone przy rejestracji). Będzie tam dostępny link do systemu OIOIOI. W systemie znajdą się również tematy poszczególnych zadań. Punktacja za rozwiązanie zadań konkursowych będzie dostępna po zakończeniu I Etapu.
  2. Jeden dzień przed właściwym terminem w systemie OIOIOI będzie dostępne testowe zadanie (dostęp jak powyżej). Zadanie testowe nie będzie oceniane, a posłuży jedynie do zapoznania się z platformą OIOIOI. Rozwiązanie tego zadania nie jest obowiązkowe. Punktacja uzyskana za zadania testowe będzie dostępna dla uczestników na bieżąco.

Ocena rozwiązań

  1. Jedynymi kryteriami oceny rozwiązań zadań są:
    • poprawność wyników,
    • efektywność rozwiązań (czas wykonania),
  2. Nie podlegają zatem ocenie kwestie takie jak formatowanie kodu, nazewnictwo funkcji i zmiennych czy też stosowanie/niestosowanie komentarzy.
  3. Nie ma potrzeby weryfikowania prawidłowości danych wejściowych i ich zgodności ze specyfikacją w treści zadania
    • należy przyjąć, że dostarczone do programu dane wejściowe są poprawne.
  4. Rozwiązania sprawdzane są w sposób automatyczny, na przygotowanych uprzednio przez autorów zadań przypadkach testowych.
  5. Należy ściśle trzymać się formatu wyników podanego w treści zadania. Jakiekolwiek odstępstwa mogą doprowadzić do uznania udzielonej odpowiedzi za błędną. Dopuszczalnym odstępstwem są nadmiarowe białe znaki na końcach linii – chyba, że treść zadania stanowi inaczej. W szczególności, nie wolno wyświetlać na ekranie dodatkowych komunikatów „wchodzących” w interakcję z użytkownikiem (np. Podaj liczbę, Wynik wynosi …) będą one bowiem traktowane jako część odpowiedzi, niewystępująca w oczekiwanej odpowiedzi programu.
  6. Bezpośrednio po przesłaniu rozwiązania do systemu, jest ono kompilowane i uruchamiane na zestawie jednego lub więcej niepunktowanych testów przykładowych (wstępnych).
  7. Podstawą oceny rozwiązań są testy ostateczne. Szczegółowo weryfikują one prawidłowe zinterpretowanie treści zadania, uwzględnienie wszystkich niezbędnych przypadków (w tym przypadków brzegowych) i dobór optymalnego algorytmu dla rozwiązania problemu.
  8. Pomiar czasu wykonania realizowany jest w sposób deterministyczny, z wykorzystaniem sprzętowych liczników zdarzeń procesora – zliczane są wykonane w czasie działania programu instrukcje procesora. Przyjmuje się, że czas wykonania dowolnego jednostkowego rozkazu procesora jest stały, niezależny od rodzaju wykonywanej instrukcji. Na potrzeby prezentacji czasu przyjmuje się, że modelowany procesor wykonuje dokładnie 2 miliardy operacji na sekundę (2 GHz).
  9. Rozwiązanie dla każdego z zadań można zgłosić maksymalnie 10 razy. Podstawą oceny jest zawsze ostatnie przesłane do systemu, które nie zakończyło się błędem kompilacji – nawet w sytuacji gdy któreś z wcześniejszych uzyskałoby wyższy wynik.

Ustalenia techniczne

  1. Jedynymi dopuszczalnymi interakcjami rozwiązania ze środowiskiem systemu i światem zewnętrznym są odczyt danych wejściowych ze standardowego wejścia (scanf, cin) i zapis wyników na standardowe wyjście (printf, cout).  Rozwiązania naruszające powyższe ograniczenie (np. otwierające i tworzące nowe pliki, komunikujące się z siecią, uruchamiające nowe wątki i procesy) otrzymają 0 pkt.
  2. Zgłaszane do oceny rozwiązanie zadania musi składać się z dokładnie jednego pliku źródłowego o rozmiarze nie większym niż 10 kB.
  3. Jedyne dopuszczalne języki rozwiązań to C i C++. Zgłaszane rozwiązania będą kompilowane następującymi poleceniami:
    • Dla rozwiązań w języku C:        gcc -std=gnu99 -static -O2 -s -lm rozw.c
    • Dla rozwiązań w języku C++:    g++ -std=c++11 -static -O2 -s -lm rozw.cpp
  4. Czas kompilacji rozwiązania nie może przekroczyć 30 sekund, a wielkość wynikowego pliku wykonywalnego nie może przekroczyć 10 MB.
  5. Skompilowany program będzie uruchamiany w środowisku 32-bitowym.
  6. Program musi bezwzględnie kończyć się kodem wyjścia 0 (return 0; w funkcji int main()). Każdy inny kod wyjścia będzie interpretowany jako błąd wykonania i poskutkuje otrzymaniem 0 pkt. (nawet jeśli program wypisał wcześniej prawidłowe wyniki).

OLIMPIADA OBJĘTA JEST PATRONATAMI


MeN
Małopolska
CBK