Вікторія Косаренко про Чемпіонат світу з програмування, подорож до Таїланду та С++
Чемпіонат світу з програмування ACM ICPC - це одне з найпрестижніших змагань з програмування серед студентів. Цього року він проходив з 15 по 20 травня у Таїланді, в місті Пхукет на базі Prince of Songkla University. Представниками від України вперше стала команда Запорізького національного технічного університету

Цього року команда ЗНТУ, тренером якої є викладач кафедри програмних засобів Миронова Наталя, вперше взяла участь у фіналі світу з програмування ACM. Нам вдалося поспілкуватися з учасницею команди, студенткою Вікторією Косаренко, яка поділилася своїми враженнями від Чемпіонату в Таїланді.
— Віко, на початку нашого інтерв’ю хотілося б дізнатися, чому ви обрали для себе саме програмування? Що спонукало піти вчитися на цю спеціальність?
— Ще в школі моїм улюбленим предметом була математика, а з часом це переросло в любов до програмування. Також однією з причин стали мої друзі, серед яких були програмісти. Тож, коли прийшов час вибирати спеціальність — відповідь була для мене очевидною. До того ж, вже тоді було зрозуміло, що це — дуже перспективний і прибутковий напрямок для розвитку.
— Який склад вашої команди? Розкажи про інших учасників, з якими ви пройшли до фіналу.
— Команда складається з трьох людей. У нас утворилася команда з двох математичних геніїв, ну й мене. Я прийшла до університету по закінченню звичайнісінької школи, а хлопці, Женя та Андрій, вчилися більш солідно: один закінчив гімназію, інший ліцей. Починаючи з 2 курсу, ми всі вчилися в одній групі. Женя та Андрій генерують геніальні ідеї, вигадують оригінальні шляхи вирішення поставлених завдань. Власне, саме ці здібності, ну, і тренування, на мою думку, дозволили нашій команді вийти на досить високий рівень. У такому складі ми беремо участь у конкурсах з першого курсу, тобто ми разом вже аж 5 сезонів.
— Що ви можете загалом розповісти про Чемпіонат з програмування?
— Для початку скажу пару слів про етапи змагань. Починається все з формування і відбору команд в університеті. Далі йде обласний етап (зазвичай проходить у квітні), наступний етап – регіональний (ми відносимося до південного регіону), а ось після є два шляхи: фінал України (у Вінниці) та фінал України другої ліги (у Харкові). Друга ліга створена для людей, які показали досить хороший результат, але не найкращий. А ось після фіналу України, на який потрапляють кращі команди з усіх регіонів, проходить фінал світу.
— Скільки у вас було спроб, перш ніж ви змогли потрапити до фіналу світу?
— В перший раз ми пройшли тільки до другої ліги фіналу України й там потрапили у десятку переможців. Другий сезон ми так само завершили у другій лізі фіналу України, але на цей раз вже з призовим (здається, третім) місцем. На третій раз ми нарешті пробилися до фіналу України, але там ми об’єктивно розуміли, що призове місце нам не світить. Наступного сезону ми значно поліпшили свій результат, але і все ж таки не до рівня фіналу світу. І нарешті цьогорічний сезон вдався на славу – ми стали чемпіонами України, несподівано для всіх, обігнавши і львівську команду (яка раніше була переможцем), і київську. Перше місце у фіналі України дало нам можливість вирушити на фінал світу з програмування. Це остання частина змагань. На обласних етапах ми практично завжди займали перші місця, на регіональних останнім часом теж, а осьу фінал світу пройшли вперше.
— У вас було стільки спроб потрапити до фіналу, якщо я правильно порахувала — аж цілих п’ять. Що вас весь цей час надихало і що допомогло не опустити руки?
— Надихало бажання потрапити на фінал світу. Так само підтримував моральний дух, той факт, що результат з кожним роком покращувався. А ще, приємним доповненням ставали призи, які вручали за призові місця. Ще, після першого відвідування фіналу України дуже надихнули лекції від представників Яндекса та Фейсбуку. Погодьтеся, подібне не може не надихати. Та й атмосфера змагань та поїздок Україною, спілкування з іншими учасниками, обмін досвідом – все це позитивно позначається на моральному дусі й настрою рухатися далі.
— Що ви відчували, коли дізналися, що ви пройшли в фінал світу?
— Це був шок. Це було несподівано не тільки для інших учасників, а й для нас самих. Хоч ми цього дуже і хотіли, але об’єктивно розраховували місце, десь, на третє, а тут доля нам посміхнулася. Шок і нездатність до кінця усвідомити що ось ми – це ми, ми — чемпіони. Цих емоцій не передати. Так само пораділа, коли дізналися, що фінал світу буде проводитися в Таїланді. Я раніше ніколи не виїжджала за межі України, тому це, в якійсь мірі, було мрією, і тут — така чудова можливість подорожувати, ще й в таке незвичайне місце.
ACM ICPC – це чемпіонат світу з програмування серед студентських команд вищих навчальних закладів. Він проводиться з 1977 року компанією міжнародного рівня Association for Computing Machinery та дає можливість перевірити амбітним молодим людям свої навички програмування в порівнянні з найсильнішими студентами світу.
— А чи були на відбірковому турі будь-які нюанси або непередбачені ситуації?
— Бували іноді проблеми з комп’ютерами, але це не сильно позначалося на результаті. А кумедні ситуації ще й піднімали настрій! Наприклад, на 5 годин контесту (так називається час змагання) нам дається близько 10 завдань. Завдання оформлюється у вигляді умови, вхідних даних (приклад введення в нашу програму) і приклад вихідних даних (що повинна відповісти наша програма). Завдання бувають абсолютно різної складності, від банального: «напишіть програму для складання двох чисел» і до набагато складніших завдань. Зазвичай казуси трапляються з самими умовами завдання, коли на початку завдання описуються якісь маніпуляції з камінчиками, а в кінці у нас запитують: «Скільки у Васі залишилося цукерок?», хоча про цукерки мови не було взагалі. Це банальний приклад помилки, а в умовах напруженої атмосфери такі помилки іноді дуже смішать.
— Як відреагували ваші батьки, коли дізналися про ваше бажання брати участь в цій олімпіаді, і що вам доведеться перетнути кордон?
— Мої батьки були раді за мене, вони завжди мене підтримують у всіх моїх починаннях. На щастя, у мене вже був закордонний паспорт, який я зробила на всяк випадок рік тому, так що ось і настав той випадок. У мене трохи була паніка через перельот, тому що раніше я ніколи не літала. Але я знала, що зі мною буде моя команда і тренер, тому хвилювань було менше.
— Яке місце ви посіли в результаті змагань, скільки всього команд було?
— Всього було 128 команд з усього світу, ми посіли 51 місце.
— Які цікаві моменти та випадки тобі запам’яталися з цієї поїздки?
— Незабутньо було все: починаючи від польоту, до перебування там. Найперше, що викликало в мене дикий захват – це коли ми вже підлітали безпосередньо до Пхукету. Літак вже скидав висоту та можна було розглянути величезну кількість островів, а найпрекраснішим було те, що ця краса залита світлом світанкового сонця. Це — незабутня картинка! Так само, дуже сильно врізалася у пам’ять презентація від співробітників IBM. Вони вирішили обіграти Зоряні Війни. І тому, кожен вибрав собі образ з усім відомого фільму та робив в ньому свою доповідь. Це було дуже кумедно. А взагалі, організація всього заходу була на вищому рівні.
— На яких мовах програмування ви писали вирішення завдань?
— Командам надається широкий перелік для вибору, але ми використовували С++ вирішуючи на ньому переважну кількість завдань, але так само деякі робили на Java і Payton, так як певні особливості цих мов дозволяли витратити менше часу на написання коду для вирішення завдання.
— А з якими труднощами стикалася ваша команда?
— Напевно, найкатастрофічною складністю було те, що в кількох завданнях ми не зовсім правильно зрозуміли умову, витратили багато часу, по суті, вирішуючи зовсім не ту задачу. А в іншому — все було добре.
— Чи збираєтеся ви і далі брати участь у таких змаганнях?
— Хотілося б, але на жаль, це студентська олімпіада, а моє навчання в університеті закінчиться цього року. Так що, на студентські олімпіади мені доступ закритий, але мене це не засмучує, тому що існують різні відкриті змагання, в яких можна взяти участь і перевірити свої сили. Наприклад, Google Code Jam, Russian Code Cup, VK cup, Яндекс.Алгоритм і багато інших. Деякі так само командні, а деякі припускають вже особисту участь, інші правила ж правила залишаються традиційними.
— Ці поїздки на відбіркові етапи не заважали навчанню?
— Зазвичай, подібна поїздка займала від трьох днів до тижня, та за цей час нічого кардинального, звичайно, не відбувалося. Звісно, доводилося переписувати пропущені лекції та наздоганяти матеріал, але це було того варте. До того ж, іноді ці поїздки навпаки дозволяли абстрагуватися на деякий час від навчання та повернуться до університету з новими силами.
— Віко, дуже вам дякую, це була надзвичайно цікава розповідь. Бажаю тобі успіхів у подальшій діяльності та наснаги!
Інтерв’ю підготувала Анна ПАШКО