Olimpiada Informatyczna ma 25 lat. Pierwsza edycja Olimpiady odbyła się w roku szkolnym 1993/1994 i od tego czasu uczniowie polskich szkół mogą intelektualnie rywalizować na wiedzę i umiejętności, które są kluczowe w pracy każdego informatyka. Należą do nich przede wszystkim: układanie wydajnych algorytmów i programowanie.
Przez 25 lat Olimpiady Informatycznej wystartowało w niej łącznie 21989 uczniów (niektórzy wielokrotnie), do drugich etapów awansowało 7259 uczniów, a w finałach znalazło się 1590 uczniów. Przez te wszystkie lata uczniowie zmagali się z 387 oryginalnymi zadaniami, które są znakomitym materiałem dydaktycznym dla przyszłych olimpijczyków, a także dla każdego, kto chce podjąć się ciekawych i oryginalnych wyzwań algorytmicznych.
Książka prezentuje najważniejsze zagadnienia, które pojawiły się na Olimpiadzie Informatycznej. Znalazł się w niej reprezentatywny wybór 50 zadań ze wszystkich 25 edycji Olimpiady. Dla każdego zadania podano szczegółowy opis jego rozwiązania. Zadania są pogrupowane tematycznie i uporządkowane od najprostszych do najtrudniejszych. Przy każdym zadaniu zamieszczono odnośniki do podobnych zadań olimpijskich. Dla zrozumienia większości materiału zawartego w książce wystarczy znajomość elementarnych zasad projektowania i programowania algorytmów opisanych np. w książce Jacka Tomasiewicza zatytułowanej „Zaprzyjaźnij się z algorytmami” i wydanej przez PWN. Dla zrozumienia fragmentów bardziej zaawansowanych dołączono opisy wybranych zagadnień takich jak:
drzewa przedziałowe, haszowanie napisów, kolejka minimów,
drzewo palindromów.
Materiał prezentowany w książce został opracowany na podstawie sprawozdań z zawodów Olimpiady Informatycznej, tzw. „Niebieskich książeczek”, ukazujących się co roku po każdej edycji Olimpiady. Wyboru zadań i ich redakcji dokonali wytrawni algorytmicy, popularyzatorzy informatyki, od wielu lat zaangażowani w informatyczny ruch olimpijski: Tomasz Idziaszek, Jakub Łącki oraz Jakub Radoszewski, we współpracy z profesorem Krzysztofem Diksem. Cała czwórka zredagowała już dwie, cieszące się ogromnym powodzeniem książki z zadaniami algorytmiczno-programistycznymi: „W poszukiwaniu wyzwań” oraz „W poszukiwaniu wyzwań II”.
25 lat Olimpiady Informatycznej 9 Edycje Olimpiady Informatycznej 13 Sukcesy w olimpiadach międzynarodowych 13 Źródła sukcesów Olimpiady Informatycznej 19 O zadaniach 21 O książce 21 O redaktorach 24 Zadania – cześć pierwsza 27 Rozgrzewka 29 Lizak 29 Minusy 33 Trójkąty jednobarwne 38 Liczby antypierwsze 40 Koszt zamortyzowany 45 Krążki 45 Gdzie zbudować browar? 51 Stos 55 Plakatowanie 55 Tetris Attack 63 Przeszukiwanie grafów 68 Równanie na słowach 68 Jedynki i zera 72 Agenci 76 Algorytmy zachłanne 80 Szeregowanie czynności 80 Rozkład Fibonacciego 86 Programowanie dynamiczne I 93 Rezerwacja sal wykładowych 93 Różnica 97 Zająknięcia 102 Drzewa 109 Dostawca pizzy 109 Łuk triumfalny 117 Wielokąt 122 Algorytmy grafowe I 127 Odległość 127 Zawody 132 Dziuple 137 żabka 143 Zadania – cześć druga 155 Drzewa przedziałowe 157 Kurierzy 157 Kopalnia złota 165 Klocki 170 Meteory 181 Wilcze doły 185 Algorytmy grafowe II 189 Przedsięwzięcie 189 Hazard 196 Drogi zmiennokierunkowe 201 Zadania na bibliotekę 205 Kolekcjoner Bajtemonów 205 Gdzie jest jedynka? 210 Architekci 215 Meet in the middle 224 Szyfr 224 Panele słoneczne 230 Algorytmy tekstowe 234 Korale 234 Okresy słów 238 Palindromy 242 Programowanie dynamiczne II 248 Kupno gruntu 248 Szatnia 256 Zapiekanki 262 Algorytmy grafowe III 270 Autostrady 270 Magazynier 276 Gońcy 280 Kości 286 Inne 294 Pionek 294 Lunatyk 304 Gra 309 Pionki 315 Techniki algorytmiczne i struktury danych 323 Drzewo przedziałowe 325 Struktury dla uporządkowanego multizbioru 325 Drzewo przedziałowe typu punkt–przedział 335 Drzewo przedziałowe typu przedział–punkt 340 Drzewo przedziałowe typu przedział–przedział 344 Co dalej? 348 Kolejka minimów 349 Implementacja kolejki 349 Kolejka dla dowolnej operacji łacznej 352 Haszowanie napisów i słownik podsłów bazowych 354 Słownik podsłów bazowych 354 Haszowanie napisów 356 Zastosowania 357 Jak dobierac parametry w haszowaniu? 360 Drzewo palindromów 365 Opis drzewa 365 Konstrukcja drzewa palindromów 366 Zastosowania 369 Rozwiazanie zadania Palindromy 369 Kolejne tematy 375 Bibliografia 383 Indeks zadan 384