[Як підготуватися]

Це відправна точка, а не курс. Нижче — порядок, у якому до цього беруться, і місця, куди йти далі. Усе, на що воно посилається, уже є на цьому сайті або поруч із ним.

Мова програмування

Візьміть одну мову й доведіть її до вільного володіння. Дві погано — це гірше, ніж одна добре.

C++ — мова міжнародних олімпіад. На Міжнародній олімпіаді з інформатики вона єдина підтримувана, тож той, хто йде туди, рано чи пізно на неї переходить. Python легший на старті й цілком годиться, щоб навчитися думати алгоритмічно, але на складних задачах упирається у власну швидкість.

Якщо ви тільки починаєте — беріть будь-яку з двох і не витрачайте тижні на вибір. Якщо ви вже націлені на міжнародні олімпіади — беріть C++.

Алгоритми, приблизно в такому порядку

Мова дає змогу записати розв’язок. Знайти його дають алгоритми, і саме на них витрачається більшість часу.

  1. Синтаксис, типи, цикли, функції, введення й виведення
  2. Масиви й рядки; стек і черга
  3. Сортування та бінарний пошук
  4. Повний перебір і жадібні алгоритми
  5. Динамічне програмування
  6. Графи: обходи, найкоротші шляхи
  7. Далі — дерева відрізків, теорія чисел, геометрія

Перші чотири пункти закривають більшу частину шкільного етапу. Динамічне програмування — перевал, на якому спиняється найбільше людей, і єдиний спосіб його пройти — задачі, а не читання про нього.

Де брати задачі

Задачі минулих років уже зібрані, і шукати їх не треба.

Українські олімпіади — на uoi.eolymp.space: всеукраїнська олімпіада та юніорська і дівоча, з умовами та автоматичною перевіркою розв’язків.

Міжнародні — на eolymp.com, кожна олімпіада окремою серією. Найкоротший шлях до потрібної — сторінка самої олімпіади в розділі Олімпіади: посилання [Завдання] там веде просто в її архів.

Для щоденного тренування є Задачі — простір, де розв’язують поза прив’язкою до конкретної олімпіади.

Розв’язуйте задачі, які ви ще не вмієте розв’язувати. Година над однією такою вартує дня над десятьма знайомими.

Що читати

cp-algorithms — довідник з алгоритмів олімпіадного програмування, українською та англійською. Найкоротший шлях від назви алгоритму до робочої реалізації.

«Вступ до алгоритмів» — підручник, а не довідник: його читають підряд, коли хочеться зрозуміти, чому алгоритм працює, а не лише як його написати.

З ким

Самотужки можна дійти далеко, але повільніше. Табори — це кілька тижнів на рік серед людей, які роблять те саме, і викладачів, які вже пройшли цей шлях. Тренер пришвидшує ще сильніше: він бачить, на чому ви застрягли, раніше за вас.

Якщо щось із цього незрозуміло, почніть із типових запитань — там пояснено, які олімпіади бувають і як на них потрапити.