«Поки не трясуться пальці — все це не серйозно». Інтервʼю з українськими золотими призерами Міжнародної олімпіади з інформатики

Міжнародна олімпіада IOI — одне з найбільш престижних змагань з інформатики у світі. Цього року українська збірна виборола на ній два «золота», «срібло» та «бронзу». Ми поспілкувалися з двома «золотими» переможцями — 17-річними Олегом Навером і Романом Янушевським, їх обох тренував заслужений вчитель України Валентин Мельник.

Олег Навер з Ужгорода. У листопаді 2019-го у дев’ятому класі переїхав до Кременчука, щоб вступити до ліцею «Політ» та займатися олімпіадним програмуванням. Олег брав участь у трьох останніх IOI та став найбільш титулованим українцем за всю історію участі нашої країни в Міжнародній олімпіаді — дві золоті медалі та одна срібна.

Роман Янушевський з Києва, у складі національної збірної на IOI був уперше. Але це не завадило йому посісти 7-ме місце та стати найкращим учасником з Європи. До того ж Роман показав найкращий з 2005 року результат серед українців.

Ми поспілкувалися з хлопцями про їхнє захоплення спортивним програмуванням, підготовку до олімпіад, стратегії на міжнародних змаганнях і про те, як проходила цьогорічна IOI.

Роман Янушевський та Олег Навер

Як стали олімпіадними програмістами

— Як і коли захопилися програмуванням?

Роман: Я почав дещо запізно, але і цього часу виявилося досить, щоб досягти певних результатів. У середині дев’ятого класу друзі мене запросили в зимову школу, яку проводила наша вчителька з Київського природничо-наукового ліцею № 145. Там я вивчив ази та познайомився з олімпіадними програмістами. Зацікавився, почав щось вивчати, потрапив на міську олімпіаду та здобув найперше «срібло» — зовсім трошки не вистачило до золота. Враховуючи, що для цього я не доклав особливих зусиль, вирішив, що якщо приділити більше часу навчанню, то результати можуть бути ще кращими.

Олег: А я в дитинстві брав участь у міських олімпіадах, щоправда, з математики. У сьомому класі вчитель інформатики з моєї Ужгородської загальноосвітньої школи № 15 запропонував мені піти на олімпіаду з програмування. Я тоді ще нічого не знав — прийшов, написав щось на Pascal. Того року на ужгородській олімпіаді взагалі майже нікого не було. І так сталося, що я посів призове місце, що було абсолютно дивно. Пройшов на область, теж щось написав — й отримав золоту медаль. Але потім я закинув програмування.

У восьмому класі я перейшов до Ужгородської спеціалізованої школи-інтернату, у клас з поглибленим вивченням математики. Там була велика група людей, які займалися олімпіадним програмуванням. Тоді ж мене зареєстрували на сайті спортивного програмування Codeforces. І того року я пройшов на всеукраїнські олімпіади як з математики, так і з інформатики (щоб потрапити на всеукраїнську олімпіаду, спочатку потрібно вибороти призове місце на шкільному, міському й обласному етапах — ред.). І хоча я більше займався математикою, взяв «золото» на інформатиці й після цього перемкнувся на програмування. Багато моїх знайомих переводилися у кременчуцький ліцей «Політ», я теж вирішив туди перейти й не пожалкував.

— Вас обох до IOI тренував Валентин Мельник (інтерв’ю із заслуженим вчителем України вийшло на DOU минулого листопада — ред.). Як про нього дізналися, почали разом тренуватися?

Роман: Я познайомився з Валентином Івановичем у десятому класі, після завершення відборів на IOI. Я тоді думав, що погано написав всеукраїнську олімпіаду, але все одно пройшов далі (після всеукраїнської олімпіади певна кількість учасників проходить відбори на міжнародну олімпіаду, щоб визначити чотирьох учасників, які представлятимуть Україну на IOI — ред.). За результатами відборів зʼясувалось, що після перших трьох турів я був четвертим, але після фінального — посів лише восьме місце або ще нижче, не пам’ятаю. Тобто на торішню міжнародну олімпіаду я не пройшов.

Отже, я зрозумів, що треба більше готуватись, бо так діло не піде. І коли опублікували списки людей, які пройшли на IOI, я побачив, що у двох з них тренером був Валентин Іванович. Оскільки у Києві вчителів, які відповідають такому ж високому рівню, на жаль, не було, то я зв’язався з ним і почав займатися — майже весь час заняття проходили дистанційно.

Олег: У восьмому класі я потрапив у зимову комп’ютерну школу «Олімп», де я вперше побачив Валентина Івановича. Але мені про нього розповідали ще до цього: у нашому колі спілкування він дуже відома людина. Потім була Юніорська європейська олімпіада, на яку мене взяли. Валентин Іванович був нашим тимлідом. А потім уже я перейшов у «Політ». Враховуючи усі карантини через ковід, можна сказати, що я теж частково займався дистанційно. У ліцеї завжди було багато очних активностей, які я, на жаль, через пандемію не застав: наприклад, чотири рази на рік заїзди до табору «Ерудит» для підготовки до олімпіад.

— В інтерв’ю Валентин Іванович розповідав мені, що ви з мамою разом переїхали з Ужгорода до Кременчука... Наскільки важким для вас було рішення перебратися до іншого міста?

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

Про участь у міжнародних змаганнях

— У яких змаганнях за цей час кожен з вас брав участь? Чи ведете для себе якусь статистику?

Роман: У мене було небагато змагань. Більшість за 11-й клас, коли я досяг рівня, щоб мене почали брати. Підемо з кінця: остання IOI, перед цим була Baltic Olympiad in Informatics, Romanian Master of Informatics (Румунія), International Autumn Tournament of Informatics (Болгарія). На всіх них я отримав «золото». Ще у 2021 році ми писали ВКОШП — це можна вважати міжнародною командною олімпіадою. Там були я, Олег і Андрій Филипюк — ми посіли перше абсолютне місце, тобто показали найкращий результат серед всіх. А ще була International Zhautykov Olympiad, яку проводив Казахстан. На ній я виборов «срібло».

Олег: Я також брав участь у всіх цих олімпіадах. Здається, результати по медалях такі самі. Тільки на останній Жаутиківській у мене золото. Ще я був на IOI у 2020 та 2021 роках, де виборов «срібло» та «золото» відповідно. Я добре пам’ятаю своє перше міжнародне змагання — Юніорську європейську олімпіаду 2019, яка проходила у Словенії. Там я якимось дивом узяв «срібло».

А ще є така Центральноєвропейська олімпіада з інформатики. Ми туди ні разу не змогли потрапити. У 2021 році навіть пройшли відбори, але тоді організатори нас не запросили, пояснивши відмову «географічними показниками, бо Україна не схожа на Центральну Європу». Зате Італію взяли, що цікаво. А у 2022 році нашу країну запросили. Але, не знаю, за чиїм рішенням, одинадцятикласники чомусь брати участь у ній не могли.

— Яке з цих змагань, які ви перерахували, для кожного з вас є найбільш пам’ятним чи важливим?

Роман: Напевно, мені найбільше запамʼяталися очні змагання саме через те, що вони були вживу — Балтійське та міжнародна олімпіада 2022.

Олег: Мені більше запам’ятався ВКОШП. У нас там був не дуже хороший старт. Нас уже встигли списати з рахунків: і коментатор змагання, і команди, які сиділи поруч. Навіть Валентин Іванович на нас рукою махнув. Причому у цьому змаганні Україна бере участь уже багато років — може, 15... І, здається, кращого результату, ніж бронзова медаль, не було. Враховуючи, що там чотири золотих медалі, п’ять срібних, шість бронзових, то це місця на рівні десятого-чотирнадцятого. І навіть такий результат був лише двічі чи тричі.

А цього разу ми всі хотіли «золото». Після перших трьох годин ми були приблизно на «почесному» 145-му місці. А потім все пішло добре: одна задача була знайома, ми щось згадали та примудрилися з дуже великим штрафом випередити друге місце на одну задачу. І виграли перше абсолютне! У ВКОШП беруть участь переважно українці, румуни, росіяни, білоруси, казахи, і я не пам’ятаю, чи до нас хтось, окрім росії, у ньому перемагав.

І, звісно, запам’яталася Міжнародна олімпіада в Індонезії. Особливо важко забути, коли вони почали салюти над головою пускати.

— Ви казали, що у випадку із ВКОШП спочатку були на останніх місцях. Як вдалося перемогти, завдяки чому?

Олег: Ромчик, розповідай, чому ми відстали!

Роман: Там було багато причин. Важливий фактор, що усі українські команди приїхали писати цю олімпіаду до Кременчука. І місцеві організатори сказали, що якщо якась команда «відкриє» задачу, тобто розвʼяже її раніше за усіх інших (включаючи іноземні), то вона отримає велику шоколадку «Мілка». І оскільки ці «Мілки» лежали біля нашого столу, то нам їх дуже захотілося. Тобто ми, звісно, хотіли взяти «золото», але спочатку — шоколадки. І це нас збило.

Олег: Рома дещо перебільшує. По-моєму, річ була у тому, що Рома на п’ятнадцятій хвилині сказав: «Ця задача — легкотня, я все придумав, вирішив». А виявилося, що вона третя за складністю. А найскладнішу взагалі не розвʼязала жодна команда. Це було фактично неможливо: там були збалансовані коди Грея, у 1970-х роках п’ятеро вчених розв’язували її кілька років. Не знаю, навіщо вони дали її, бо об’єктивно її не можна було розвʼязати за п’ять годин.

Тож по факту то була друга найважча задача, про яку Рома сказав: «Тут легко, зараз усе буде!» — і почав її писати. Але потім виявилося, що це не так просто. У підсумку він довго її писав, а ми паралельно з цим намагалися здати ще якісь задачі, які теж не вдавалися. Ще нам не було на чому кодити, бо на команду є лише один комп’ютер.

Був момент, коли у нас було розвʼязано три задачі, а у сусідньої команди, де ми не знали жодного учасника, вже чотири. Ми, щоправда, розуміли, як ще шість розвʼязувати, але не було, на чому їх накодити. І аж на третій годині змагань Рома нарешті здав ту важку задачу, і ми швидко почали віддавати інші. «Мілку» ми, до речі, так і не отримали.

На командних олімпіадах є така штука, як «заморозка». Це означає, що впродовж майже всього змагання (чотирьох годин з п’яти) видно табличку з результатами усіх команд — хто скільки спроб витратив, яку задачу здав, яку ні... А наприкінці контесту там лише знак питання. Через те, що ми почали пізно здавати, у нас до «заморозки» було вісім задач (цей результат, здається, взагалі не приносив призового місця). Ще дві ми здали під час «заморозки» (як ми вже потім зрозуміли, це з нашим штрафом було нижнє «срібло»).

І нам ще залишалася задача на комбінаторику. Я згадав, що щось схоже бачив: є сітка n на n, і треба сказати, скільки з лівого верхнього кута в правий нижній є пар шляхів, які не перетинаються. Я пам’ятав, що там потрібно зробити якусь розумну бієкцію, але не пам’ятав яку. І от в останні 15 хвилин я плюс-мінус зрозумів, що робити, і тремтячими руками написав. Спочатку я шукав за стандартним модулем 109+7, бо він є в багатьох задачах. Але у нас на семпл-тестах не працювало. Залишалося три хвилини до кінця, коли я зрозумів, що треба було знайти відповідь за модулем типу 998244353. І за хвилину до завершення ми таки здали задачу.

При цьому у нас був великий штраф. Його нараховують приблизно так: сумарний час на всіх задачах плюс кількість спроб надіслати задачу помножити на 20 хвилин. І наш штраф був утричі більшим, ніж у попередньої команди. Але завдяки тому, що ми здали на одну задачу більше, ніж у всіх інших, ми перемогли.

Підготовка до змагань

— Як ви готуєтесь до змагань?

Роман: Я не жив у Кременчуці, утім в мене була серйозна підготовка. Весь останній рік щотижня, мінімум двічі, я займався з Валентином Івановичем. Зазвичай ввечері після школи — в середньому по три-чотири години, іноді більше. І сам щось на тижні розв’язував. Бо бувають такі задачі, які за одне заняття не піддаються — треба ще походити, поміркувати, як реалізувати її краще. Перед відборами на IOI у мене були інтенсивніші заняття — щодня по п’ять годин. А після них і перед самою міжнародною олімпіадою ми постійно займалися очно.

Олег: Рома лукавить, там не п’ять годин на день, а значно більше.

Роман: Так, п’ять годин на день — це ми пишемо якийсь тур, не відриваючись від стільця.

Олег: Так, зважаючи на те, що вважати тренуванням. Це досить нетривіальний показник. Розв’язувати задачі — це в основному думати. Як тут виміряти кількість часу, яку витрачаєш на «думання»? Буває таке: написав контест, явно не всі задачі здав — і потім розмірковуєш над ними ще три дні.

Коли перед IOI ми були на тренуваннях у Варшаві (туди приїхало сім людей, у тому числі ті, хто пройшли на CEOI — Central-European Olympiad in Informatics), то було зазвичай так: зранку п’ять годин змагання (здебільшого японське), потім ще дві години щось на кшталт TopCoder або Codeforces з доступних онлайн-ресурсів. А далі ми просто про це спілкувалися. До речі, очна підготовка класна тим, що після контестів можна ще три дні ходити та ці задачі обговорювати, зокрема 18-ту версію якогось рішення. Онлайн ми теж це робимо, але очно — все ж таки краще.

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

— Під час такої інтенсивної підготовки у вас є вихідні?

Роман: Начебто був один вихідний, але цього дня у нас також був Codeforces раунд.

Олег: Так. І командна олімпіада, яку ми знайшли за 50 доларів на людину. Тут трошки не так, як зі звичайним спортом, де потрібне суто фізичне відновлення. У мозку страшної кріпатури немає.

Я пам’ятаю один вихідний, коли нас повели гуляти Варшавою. Зрештою я не зрозумів, куди ми ходили. Усюди я вже бував. Краще б того вихідного не було, а був би ще один контест — усім було б спокійніше. Хоча так, іноді звичайно корисно відволіктися. Тому один-два вихідних буває.

— Пам’ятаю, Софія Мельник (інтерв’ю з багаторазовою переможницею міжнародних змагань з програмування виходило на DOU у квітні 2021 — ред.) розповідала, що при підготовці враховують часову різницю з тією країною, де буде проводитися IOI. Наприклад, коли змагання було у Японії, учасники починали тренування о третій ночі. Як було цього разу?

Роман: Так, з Індонезією є часова різниця — +5 годин. Але нам було простіше, бо, по-перше, ми приїхали туди раніше, у нас був тиждень, щоб підлаштуватися під новий режим перед першим змаганням. А по-друге, самі тури починались о 13-й за індонезійським часом — в Україні це восьма ранку, тому різниця не так відчувається. До того ж ми користувалися таким прийомом, як «проспати сніданок». І тоді вже можна лягти не так рано та виспатись.

Олег: Прийом «проспати сніданок» потрібен був скоріше, щоб написати командну олімпіаду о третій ночі. Взагалі не думаю, що така підготовка мала б сенс. Бо у Варшаві ми готувались до IOI в офісі Google для стартапів, який о третій ночі точно був би закритий. До того ж у нас був складний переліт, дві ночі в аеропортах, тому будь-який режим все одно збився б.

Про IOI 2022

— Скільки часу тривала Міжнародна олімпіада 2022?

Роман: Ми заїхали 4 серпня та були першою командою, яка прибула до Індонезії, де цього року проводилася міжнародна олімпіада. Спочатку наші тимліди жили в нашому готелі, а потім, коли олімпіада офіційно почалася, 7 серпня, їх переселили до іншого місця, а нас передали, як і кожну команду, під опіку конкретного гіда. IOI закінчилася 14-го, а 16-го був наш виліт.

Організовано це так, що хоча олімпіада триває тиждень, змагання займають лише два дні. Перший день — це просто заїзд, наступний — трейнтур, 9-го було відкриття і тільки 10-го — перший день контесту. Потім вихідний, другий день змагання, а 13-го — екскурсія, наступного дня — закриття, і за день після нього — виїзд більшості команд.

— Олегу, ви стали найбільш титулованим українцем за всю історію виступів нашої команди. Чи відрізнялася ця міжнародна олімпіада чимось від минулих?

Олег: Так, для мене це була перша очна IOI. На очних змаганнях усі мовчать, а коли п’ять годин закінчується, учасники встають і починають питати одне одного: «Скільки балів? А ти як розвʼязав?» Але всі мої минулі «міжнари» були дистанційними, я писав їх у Кременчуці, де поруч зі мною сиділи лише три людини — решта команди України. А тут ти одразу встав і з сингапурцем обговорив задачу «В», а потім ще з кимось — задачу «С» (на IOI на кожному з двох турів по три задачі — «A», «B», «C», вони не відсортовані за складністю, як на всеукраїнських змаганнях. Задачі можна вирішувати або повністю (тоді за успішно розв’язану задачу учасник отримує максимум 100 балів), або блоками, за які нараховуються часткові бали — ред.). Це прикольно, що ти зміг поспілкуватися з конкурентами та перейняти якийсь досвід.

Щодо «найтитулованішого» — я розумів, що це на кону. Тому поставив собі ціль взяти «золото». У мене був шанс виступити краще, якби трохи більше ризикував. На командних олімпіадах ти задачу або розвʼязав, або ні. Там немає особливих стратегій. Точніше є, але вони інші. А на IOI задачі поділяються на багато підзадач, за які можна отримувати часткові бали — і не завжди зрозуміло, як правильно діяти.

У кожної задачі є підзадачі або так звані блоки, кожен з яких коштує певну кількість балів. Зазвичай підзадача — це спрощена початкова задача. Якщо намагатися одразу розв’язати задачу з повними обмеженнями, можна витратити забагато часу. Якщо при цьому задачу вирішити не вийде, часу здати легші підзадачі вже не буде.

Нерідко намагаєшся розвʼязати задачу повністю — і зрештою не отримуєш жодних балів. А буває таке, що, поки ти вирішуєш блоки, у тебе закінчується час. А виявляється, можна було ту задачу розв’язати повністю та здати на 100 балів. Але виконати багато блоків — це більш safe strategy. І я вирішив цього року робити саме так.

Взагалі міжнародні олімпіади неоднакові щороку. У 2021-му було значно складніше. Багато хто такого просто не очікував. І навіть дуже сильні учасники набирали по 60 балів за задачі з максимальних 100.

Національна збірна України з тренерами Валентином Мельником та Антоном Ципком

— В чому саме була складність задач?

Олег: У них було більше нетривіальних переходів, важчі структури даних — треба було знати якісь «китайські». Щоб їх вирішити, потрібен був більший досвід.

— Романе, ви стали найкращим учасником з Європи, показали найкращий результат для України, починаючи з 2005 року. Це ваша перша олімпіада, на яку ви потрапили...

Роман: Перша і остання.

— Остання тому, що ви випустилися зі школи, а в IOI беруть участь тільки школярі?

Олег: Так.

— Романе, як вам вдалося досягнути такого результату з першої спроби? Чи було у вас хвилювання, адже ви вперше були саме на міжнародній олімпіаді?

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

У мене був досвід на тій самій Жаутиківській олімпіаді: в першому турі я припустився помилки — намагався розвʼязувати задачі на 100 балів. Але вони не розвʼязувалися. Тобто я ризикнув, і цей ризик себе не виправдав. Я витратив час, щоб зробити рішення на 100 балів, а воно не «зайшло» з причин, досі мені невідомих. Часу ж, щоб набрати часткові бали, вже не було. Там була якраз така задача, де рішення на 100 балів взагалі відрізнялося від рішення на проміжні бали. Не можна було спочатку зробити блоки, а потім щось доробити на 100. Точніше можна, але це було б складніше, ніж наново повністю написати рішення. Тому я дійшов такого висновку: не так важливо зробити складне, як не «протупити» в чомусь простому, такому, що зроблять усі. Це дуже важливе правило. На IOI я теж трохи ризикував, але не так сильно.

— Ви очікували, що візьмете «золото»?

Роман: Я робив усе можливе, щоб його взяти.

— Які задачі з міжнародної олімпіади вам особливо запам’яталися? Можливо, простіші або складніші?

Роман: Задачі були з різним рівнем складності. Наприклад, за традицією на кожному «міжнарі» є задача, яку розв’язують дуже багато учасників — понад сто. Цьогоріч у першому турі була така, яку розв’язали тільки сорок учасників. Ми очікували, що подібна буде у другому турі, але її теж не було. Задачі повністю розв’язували приблизно до 50 людей. Я у другому турі шукав найлегшу. Чомусь вирішив, що це третя, а вона виявилася найважчою. Але я дуже вірив, що вона найлегша і навіть її розвʼязав.

Олег: Насправді часто допомагає віра. Я теж на турі оцінював складність задач, подивився: дві «мутні», а в третій помітив, що відповідь потрібно вивести за модулем. Зазвичай це означає, що задача на комбінаторику. Так і було. Взагалі через певні обмеження в силабусі, я думав, що комбінаторики на «міжнарі» не буде ніколи, а тут вона попалася. Думаю, треба використовувати можливість. Почну з неї. Виявилося, що вона була найлегшою, хоча я дуже сподівався, що навпаки, бо комбінаторика — напевно, найсильніша з моїх сторін. Я її швидко зробив. Потім задачу «В» здав на 99,98 бала — так і не зрозумів, чому не 100 балів. А потім я подумав, що Валентин Іванович мені скаже: «Чому не набираєш блоки?» — і у третій задачі пішов цим шляхом, щоб бути вже певним, що скоріше за все буде «золото». При цьому над рішенням на 100 балів навіть не думав, бо вирішив: «ашка» була легка, «бешка» теж досить легка — ну, не можуть же усі три задачі бути легкими, значить остання точно суперскладна. Так набрав блоками 55 балів. А потім з’ясувалося, що всі задачі були не такими вже й важкими. Така «психологічна пастка».

Взагалі цікаво, як поводяться різні учасники. На другому турі був хлопець, який здав лише «цешку», яку розв’язали лише п’ять людей, а інші — не розвʼязав. А на першому турі був учасник, який здав дві складніші на 100 балів, а на третій найлегшій набрав 3. І я його розумію. У мене було щось схоже, коли тільки починав займатися програмуванням і не вмів оцінити рівень складності задач.

Медалі української збірної на IOI 2022

Про участь в олімпіадах під час війни

— Розкажіть, чи відчували особливе ставлення, підтримку через війну в Україні?

Роман: Після початку війни нашу країну почали запрошувати на очні змагання: Балтійська, Центральноєвропейська олімпіади тощо. Отже, до України почали ставитись як до всіх, запрошувати туди, де вона має брати участь.

Щодо підтримки на IOI, на рівні організаторів — ні. Ставились так, як до всіх. Може, деякі команди щось від себе висловлювали.

Олег: На Балтійській олімпіаді більше це відчувалося. Україна в останній момент подала заявку на участь, її ніхто не мав приймати. Але прийняли. Й організатори багато разів висловлювали підтримку. На міжнародній такого не було. Хоча учасники (переважно з європейських команд) підходили, щось казали. Здається, делегація з Тайваню підходила зі словами: «От, ми в схожому становищі». Але якогось особливого ставлення ми не відчули. І це, думаю, на краще, бо було б некомфортно.

— В одній статті читала цитату вашого вчителя, що «дуже приємно почути на асамблеї, де розглядалося питання війни в Україні, як дівчина з Естонії, що виступала, сказала „Слава Україні!“. Приємно відчувати підтримку балтійських країн і європейських». Про що йшлося?

Олег: Так, це тимлід Естонії, яка дуже підтримувала Україну. З нею багато спілкувалися наші учасники.

Взагалі ми з різними командами познайомилися: з Киргизстану, Німеччини, Польщі. Хоча з останніми ми найбільше часу проводили, разом летіли з Варшави, але якраз вони виявилися неговіркими.

На олімпіаді у нас з Ромою вже був знайомий сингапурець. Кілька місяців тому він написав мені у Discord: «Я тебе знаю. Є така-то командна олімпіада. У мене два співкомандники, але їм за часовим поясом не підходить. Пишімо зі мною». Зрештою, ми писали це змагання вчотирьох: я, він, Рома і ще хлопець з Хорватії (він на «міжнар» не приїхав, його країна брала участь онлайн). А з Сингапуру наш знайомий приїхав, тож вдалося поспілкуватися наживо.

— Ви поїхали на міжнародну олімпіаду в такий складний для країни час. Чи було це для вас додатковою мотивацією, щоб виграти?

Олег: Так, ще задовго до IOI я про це часто міркував. А потім вирішив, що під час цієї олімпіади не потрібно взагалі про таке думати. Я поставив собі конкретну мету на цьому етапі «змагатися» тільки з задачами, набрати якомога більше балів. А після олімпіади — так, була гордість: «Ось для країни...»

Під час олімпіади я намагаюся всі зайві думки, в тому числі про відповідальність, відкласти. Мені іноді дуже заважає, коли на контесті починаю думати: «А що, як мене хтось обжене?», «А що, як там якийсь результат не такий?». Виходить, я фіксуюся не на задачі, а на чомусь, що мені точно не допоможе. До речі, я й до війни думав про те, яка це честь представляти країну. А зараз — тим паче.

Роман: Я згоден, що завжди є ціль представити Україну на високому рівні (тим більше в такий час). Але так, під час туру основне завдання — набрати максимальну кількість балів. Це все, що я можу зробити на олімпіаді.

Що потрібно для занять спортивним програмуванням

— Які мови програмування кожен з вас знає?

Роман: Є платформи як Codeforces, а також деякі олімпіади, які дають вибір мови програмування. На IOI це тільки С++. Окрім неї, я трохи знаю Python, але лише на достатньому рівні для того, щоб порахувати те, що С++ не порахує з великою точністю.

Олег: Я теж, окрім С++, знаю трохи Python, JavaScript. Взагалі, звісно, можна за три дні вивчити базовий синтаксис якоїсь мови... Але олімпіади з програмування — це не те саме, що розробка на проєкті. На змаганнях ти розв’язуєш задачі. І робиш це головою. А далі, якою мовою їх написати — це вже таке. Враховуючи, що на «міжнарі», крім С++, немає іншої мови, то всі просто розвʼязують задачі нею.

— Які риси, навички допомагають вам досягти успіху в спортивному програмуванні?

Роман: Я колись цього не розумів, але насправді дуже впливає стресостійкість. На IOI тебе оточують 200 людей, які грюкають по клавіатурі, хтось наспівує, щось бурмоче. Плюс розумієш, як багато стоїть на кону. Наскільки при всьому цьому ти можеш залишатися зосередженим на задачі? Я чув багато історій, коли люди дуже добре вміють розв’язувати задачі, але, опиняючись в екстремальній ситуації, губляться. Хоча, наприклад, мені стрес допомагає, додає мотивації. Але все це перевіряється тільки на реальних змаганнях.

Олег: Мені теж стрес допомагає. Оце поки пальчики труситись не починають, то значить я не серйозно пишу. А ще якщо ставитись до олімпіад як до спорту, то це допомагає брати медалі. Інколи люди на питання: «Чому ти там бали не набрав? Міг би спокійно в „золоті“ бути», відповідають: «А от я хотів ту задачу розв’язати, бо вона мені сподобалася» (або щось подібне). Таке заважає на олімпіадах високого рівня.

— А в командних змаганнях...

Олег: У командах, здається, кожен з нас починає працювати різко гірше. До речі, цього моменту немає в особистих олімпіадах, а є в командних — у вас лише один комп’ютер на всіх. І треба його якось ділити. У мене з цим є проблеми, часто думаю: «От на особистій олімпіаді я б просто сів і ті всі задачі спокійно здав. Там би трохи „протупив“, там би швидше здав — і у підсумку все було б нормально». А на командній боїшся втратити так званий «комп’ютерний час команди», через що є невпевненість у собі. Тому часто не вдається продемонструвати максимум можливостей у розв’язанні задач.

Роман: На командних олімпіадах і командна відповідальність за результат.

Олег: Мабуть, так. Часто думаєш: «Зараз не здам, а той мені скаже...» Боїшся не того, що тобі інший учасник буде говорити, а відчувати, що підвів команду, час забрав, нічого не здав.

Роман: Але командні олімпіади не так страшно програвати. Якщо Валентину Івановичу доведеться бити трьох, це все ж таки краще, ніж одного :) Не так сильно влетить.

Олег: Ні, Рома, ти не знаєш історії про те, як одного разу Валентин Іванович вибрав одного з команди і... Передчуваю, що Валентин Іванович прочитає інтерв’ю і покаже, що і з двома теж впорається :)

Про плани

— Ви обидва вже випускники ліцеїв, куди плануєте вступати чи уже вступили?

Олег: До Ягеллонського університету в Кракові.

— Удвох?

Олег: Скажу більше: уп’ятнадцятьох. Крім нас, туди пішли інші олімпіадники з математики та програмування. З цьогорічної команди на IOI до Ягеллонського вступили всі, окрім Даші, тому що вона ще навчається у десятому класі.

— Чому обрали саме цей виш?

Олег: Вони дуже-дуже запрошують олімпіадників, дають гарні умови. Плюс туди вступає багато знайомих, можна зібрати нормальну команду на ICPC — найбільшу студентську командну олімпіаду з програмування. Той же Максим Тур (учасник команди України на IOI 2021 — ред.) уже рік навчається у цьому виші, багато розповідав мені про університет. Тож мені сподобалося, як він та інші знайомі оцінювали якість навчання.

Роман: Якщо ти олімпіадник, туди можна вступати без додаткових екзаменів. І ще вони дають стипендію.

— Ви вступили до Ягеллонського університету на одну спеціальність?

Роман: Так, на «Аналітичну інформатику».

— Які у вас плани, мрії, де б хотіли працювати?

Роман: Спочатку треба вивчитись, а вже потім у процесі будуть з’являтися можливості. Зараз пріоритет — навчання. А здобуті знання маємо намір застосувати для відбудови України. Ми будемо брати участь в олімпіадах для студентів — у нас фактично вже є команда, з якою ми можемо претендувати на призові місця.

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

— Які офери вам пропонують?

Олег: Різні. То якийсь сингапурський стартап запросить, то Huawei укотре покличе. Про них уже як комедія. Там працює багато наших програмістів, саме олімпіадників. Вони довгий час підтримували український олімпіадний рух. І тому всі вже жартують: «Якщо що, то Huawei завжди залишиться з тобою». Мені нещодавно писали, пропонували пройти інтернатуру. Кажу: «Та ні, спочатку навчання». — «Та ти головне подайся. Потім колись пройдеш. Головне — це місце, де тебе дуже хочуть «зарезервувати». Наскільки знаю з досвіду «міжнарників» минулих років, то досить легко потрапити на стажування навіть у топові компанії: Google, Facebook тощо.

Роман: Так, без роботи ніхто з олімпіадників не залишався, всі добре влаштувалися. Хоча особисто мені офери не надходили, але на IOI компанії-спонсори постійно нам роздавали якісь флаєри.

Олег: Я нагадаю, у тебе є візитка Huawei.

Роман: Так, там прямо написано: «менеджер з поглинення талантів».

Про відпочинок і вигоряння

— Хто вас підтримує?

Роман: Я не зовсім розумію, що значить «підтримує». У нас і так є мотивація, тому її додавати особливо не треба.

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

— Чи буває так, що друзі, не пов’язані з програмуванням, кажуть вам: «Та чого ти там сидиш за тим комп’ютером? Пішли погуляємо»? Чи вони розуміють, що це для вас важливо, та підтримують?

Роман: Якщо хтось не розуміє, то можна розповісти. Або показати свій графік — і все одразу стає зрозумілим.

Олег: Я не так багато ходив гуляти до того, як почав займатися програмуванням, тож у мене нічого особливо не змінилося. А коли я переїхав до Кременчука, там переважно моїми друзями були ті, хто теж займається програмуванням. Через те, що багато перебуваєш у колі таких самих людей, немає такого, що відриваєшся від світу.

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

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

Роман: В останні роки, коли у восьмому класі я перейшов до фізико-математичної школи, у мене був великий обсяг роботи, щоб наприкінці отримати гарний атестат. Програмування багато часу не забирало: з Валентином Івановичем двічі на тиждень, і, коли час лишався, дорозв’язував те, що на заняттях не виходило.

У дитинстві я багато чим займався, читав багато книжок. Пам’ятаю, у молодших класах — прямо захоплення було. Ще я закінчив музичну школу, клас фортепіано. Спортом займався. Потім глобальних захоплень стало менше. А ось зараз, коли олімпіади вже закінчилися, часу багато. Я волонтерю, адже перебуваю в Кракові, де є біженці. І я їм допомагаю, як колись допомагали мені, коли я тільки сюди приїхав. Є багато волонтерських центрів, куди приходять люди, щоб поїсти або взяти одяг чи предмети побуту. Там завжди потрібна допомога. Банально прийняти людей, дати їм те, що вони потребують, вести облік. Для волонтерів завжди робота є.

— Чи не було у вас вигоряння? Якщо було, то як ви з цим справлялися?

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

Олег: Що вважати «вигорянням»? Колись хотілося займатися більше, колись — менше. У мене часто після таких масових заходів, як олімпіади або збори, був підйом, хотілося ще більше брати у них участь.

Бувало, звісно, таке, коли обридло або не хотілося розвʼязувати задачі. Але тоді зазвичай я просто згадував, чому мені це подобається. Багато чого залежить і від самої задачі. Вони бувають огидними, якщо чесно. Які неприємно розв’язувати, але треба. Наприклад, коли в них забагато розгляду часткових випадків або «тупої», монотонної роботи. Зрозуміло, що ти її можеш виконати, але треба витратити на це багато часу. І в підсумку сидиш п’ять годин, хоча ще на п’ятій хвилині обмірковування на сто відсотків знаєш, як її правильно розв’язувати. Часто у таких випадках я іду на платформу типу Codeforces або TopCoder, де проходять онлайн-змагання. Пишу його, отримую трошки адреналіну — після цього «попускає», і я розв’язую неприємні задачі вже спокійно.

— Що вам дають перемоги в олімпіадах?

Роман: З матеріального — ноутбук подарували. Але, звісно, цінність вимірюється не матеріальним. Мені завжди подобалося розв’язувати задачі. А так ще є можливість той скіл десь показати. Я завжди робив тільки те, що мені подобається, в плані підготовки. Якщо щось було нецікаво, я цього не робив. Усе, у чому я практикувався, мені самому подобалося. До того ж олімпіади дають можливість кудись з’їздити, знайти нових друзів. Це насправді корисний досвід.

Олег: Так, у матеріальному плані це якось безглуздо оцінювати. Це просто цікаво як змагання, усім подобається вигравати. Я знаю мало людей, які б сказали: «Ні, мені не подобається, коли я перемагаю». Плюс ти бачиш результат. Бо навіть коли робиш те, що подобається (а я теж роблю все, що мені подобається), все одно хочеться бачити результати роботи, помічати, що стаєш кращим. І олімпіада показує, чи справді це так.

Все про українське ІТ в телеграмі — підписуйтеся на канал DOU

👍ПодобаєтьсяСподобалось16
До обраногоВ обраному3
LinkedIn



4 коментарі

Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.

Так дійсно з Олімпіадним досвідом досить легко отримати стажування в Гугл. Записуйтесь на наступний рік влітку (послі першого року в универі).

Щирі вітання Вельмишановні Чемпіони.
Вітання від учасника міжнару (1993 Аргентина Мендоза), й тренера збірної 1995-1997.
З найкращими побажаннями.
Рубан Ігор

Дякую за цікаву, змістовну та повчальну статтю.
На мою думку, уміння вирішувати олімпіадні задачі з інформатики — це найкращий навик, який дитина може отримати в школі для швидкого старту кар’єри розробника програмного забезпечення, оскільки людина, що вміє вирішувати такі задачі, легко пройде інтерв’ю у великі міжнародні технологічні компанії, які пропонують найвищі на ринку заробітні плати.
І постає закономірне питання, як мотивувати дитину вчитися вирішувати такі задачі. З першого погляду здається, що така мотивація береться в дитини звідкись зсередини, і батьки не можуть посприяти появі у дитини бажання годинами розв’язувати олімпіадні задачі замість інших, не настільки складних для роботи мозку занять, на зразок перегляду кінофільмів чи проходження комп’ютерних ігор. Та розповіді героїв статті наштовхують на думку, що все-таки існує дієвий спосіб зацікавити дитину олімпіадним програмуванням:

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

Тобто щоб мотивувати дитину розв’язувати олімпіадні задачі, потрібно, щоб дитина потрапила в оточення олімпіадників, і вже після цього дитину мотивуватимуть розв’язувати олімпіадні задачі інші діти. Саме в тому й полягає цінність кращих фізикоматематичних ліцеїв країни на зразок згаданих у статті Київського природничо-наукового ліцею № 145 та ліцею Політ — в оточенні олімпіадників, в яке потрапляє дитина.

Підтримую.

потрібно, щоб дитина потрапила в оточення олімпіадників

По своєму досвіду- 2 місце на міській олімпіаді по програмуванню в 89 році, оточення а саме коло однодумців, воно надихає.

Підписатись на коментарі