Каменяр: Інформаційно-аналітичний часопис Львівського національного університету імені Івана Франка

Наш Університет – третій у Європі зі спортивного програмування

16 жовтня 2010 року в Бухаресті відбувся півфінал світу зі спортивного програмування. У змаганні взяла участь 51 команда з 7 країн південно-східної Європи: Румунії, України, Болгарії, Туреччини, Молдови, Македонії, Сербії. Україну представляли 11 команд: із Київського національного університету імені Тараса Шевченка, Національного технічного університету України “Київський політехнічний інститут”, Харківського національного університету ра­діо­елект­роніки, Донецького національного університету, Вінницького національного технічного університету, Сумського держаного університету, Таврійського національного університету ім. В. І. Вернадського, Львівського національного університету імені Івана Франка.
Перше місце здобула команда Таврійського національного університету ім. В. І. Вернадського, друге – Київського на­ціо­наль­ного університету імені Тараса Шевченка. Команда Львівського національного університету імені Івана Франка посіла 6 місце, поступившись тільки двом університетам. Склад команди: Ігор Євчинець, Павло Кушнір, Олександр Воєца, тренери – Василь Білецький та Руслан Бабіля. Отже, Львівський національний університет імені Івана Франка – третій у південно-східній Європі зі спортивного програмування. Рівень українських команд дуже високий, що засвідчили результати: у першій десятці – 9 команд з України і тільки одна з іншої країни – Румунії.
Щоб фінальне змагання було цікавішим та різноманітнішим, запровадили правило: від кожного університету – по одній команді, тому важливо не те, яке місце команда здобула в загальному заліку, а яке місце посіла серед університетів. Від нашого регіону на фінал світу автоматично потрапляє одна команда – переможець, традиційно додають ще одну команду, а, враховуючи попередні успіхи українських учасників, цього року має бути представлено більше команд регіону.
У цьому студентському змаганні зі спортивного програмування беруть участь команди з 3 осіб. Змагання триває 5 годин, потрібно розв’язати якомога більше завдань із запропонованих, здебільшого 9–12. Серед тих, хто розв’язав однакову кількість завдань, кращою вважають команду, яка зробила це швидше і якісніше, тобто з меншою кількістю помилок. Завдання – алгоритмічні: і суто теоретичні, і з цілком практичним застосуванням (скажімо, оптимізувати процес роботи авіадиспетчерів в аеропорту тощо). Особливістю змагань із програмування є те, що розв’язки перевіряють автоматично системи тестування у процесі самого змагання, тобто можна спостерігати, як змінюється турнірна таблиця, що дуже захопливо для глядачів.
Офіційний чемпіонат світу зі спортивного програмування серед студентів тривалий час підтримує провідна ІТ?компанія IBM та організовує “Association for Computing Machinery”. На шляху до фіналу потрібно пройти кілька етапів: університетські першості, півфінал України (для команд західного регіону декілька років поспіль відбувається в ЛНУ ім. Івана Франка), фінал України (у Вінниці), півфінал світу (для нашого регіону – завжди в Бухаресті, на базі місцевої Політехніки). Фінал світу, у якому змагаються 100 найкращих команд, відбувається в різних містах планети: Банф (Канада), Стокгольм (Швеція), Харбін (Китай), цього року – в Шарм ель-Шейху (Єгипет). Торік на всіх рівнях узяло участь 8000 команд із цілого світу, тобто понад 25000 студентів.
Світову першість проводять уже 35-й рік поспіль. Віднедавна змагання дуже успішні для українських команд: 1999 р. бронзову медаль на фіналі світу здобула команда КНУ, 2008-го – першу золоту медаль для України виборола команда Львівського національного університету імені Івана Франка (Василь Білецький, Остап Коркуна, Руслан Бабіля), 2010-го – повторення найкращого результату: золоту медаль здобули студенти КНУ.

Змагання триває…
Уперше організували пряму текстову трансляцію на сайті “АСМ Контестер” (http://acm.lviv.ua) – для глядачів, які бажали стежити за розвитком подій через систему “Інтернет”.
Безпосередньо перед змаганням – процедура жеребкування: капітани команд витягують номер комп’ютера, за яким працюватимуть (щоб ніхто не зміг вибрати місце на власний розсуд). Команди йдуть на свої робочі місця, тренери дають останні настанови (на відміну, скажімо, від футболу, тренери й уболівальники нічого не можуть підказувати під час змагання). Учасники востаннє перевіряють, чи все належно працює, щоб не трапилося казусів. Тоді дають старт змаганню. Цього року команди мали 10 завдань і 5 годин. У Бухаресті дуже вдало вибрано місце для змагання – у холі одного з корпусів університету. Команди розміщено знизу, а глядачі і тренери з балконів спостерігають за роботою команди. Точніше, за емоціями учасників, загальним перебігом змагань, оскільки команди – на достатній відстані, щоб не було змоги підказувати. Для глядачів організували трансляцію турніру на моніторі.

Bogdan Dragos Constantinescu – керівник IBM Romania (Country Systems&Technology Group Manager, IBM Romania); Руслан Бабіля – тренер команди; Bozena Mannova – директор європейського регіону АСМ, Чеський політехнічний університет у Празі (Czech Technical University Prague); Ігор Євчинець; Павло Кушнір; Олександр Воєца; Nicolae Tapus (Ніколай Цапуш) – директор південно-східного європейського регіону АСМ, Політехнічний університет Бухареста

Ще не всі встигли знайти монітор, а учасники вже відправили перші успішні розв’язки – декілька команд розв’язали одну задачу вже на другій хвилині. Минуло ще хвилин 5, і команда з Софії здала другу задачу, вирвавшись на перше місце. Але це тривало недовго, оскільки команда з ТНУ дуже швидко розв’язала 4 завдання. А невдовзі команда нашого Університету “LNU United” також виконала 4 завдання, і вийшла на другу позицію. І все це – за перші півгодини змагання. Потім підтягнулися інші команди, і почалася стратегічна боротьба. Щоб розв’язати завдання, потрібно прочитати умову (обсяг якої дуже часто – понад сторінку), придумати алгоритм розв’язку, а тоді запрограмувати його на комп’ютері, перевірити, чи все правильно (кожна невдала спроба додає штраф і погіршує позицію), а тоді вже можна відправляти розв’язок на тестування до системи, яка винесе вердикт. Спробуйте уявити, якою запеклою була боротьба, якщо за перші 30 хвилин 4 команди розв’язали по 4 завдання.
Прості задачі закінчилися, тепер важливо правильно вибрати наступне завдання, щоб розв’язати якомога більше і точно. Адже можна “засісти” за одне й не розв’язати його, бо занадто складне, або навпаки, у простому зробити в розв’язку дрібну помилку і потім довго її виявляти. На жаль, саме так сталося з нашою командою: розв’язавши 5 завдань, хлопці застрягли на черговій задачі, заробивши багато штрафів і витративши чимало часу. Урешті-решт, успішно її подолали й почали розв’язувати наступні. Місце нашої команди поступово змінювалися між 4 і 7, і так тривало до “замороження” монітору (щоб зберегти інтригу, впродовж останньої години позиції команд не показують, а результат повідомляють на нагородженні переможців).
Отже, до “замороження” “LNU United” розв’язала 7 завдань, посідала 6 місце, поступаючись трьом ВНЗ: КНУ, ТНУ, ДонНУ. Під час “замороження” всі тренери вийшли на балкон, щоб спостерігати за командами та їхніми радощами чи розчаруванням. Так минула остання година змагання. Після завершення учасники, тренери спілкувалися між собою, намагалися з’ясувати, хто на якому місці. Дізналися, що команда ТНУ розв’язала 9 завдань із дуже хорошим часом і, відповідно, мала перемогти. Нас цікавило місце команди ЛНУ ім. Івана Франка. Хлопці за останню годину розв’язали ще одне завдання, тобто разом – 8, як і в команди з Донецька (ДонНУ). Почали підраховувати, у кого скільки штрафу, хто коли здав останнє завдання. Але ці підрахунки не дали точного результату. Довелося чекати нагородження, яке мало відбутися аж увечері.
На нагородженні хвилювання переповнювало учасників, бо ніхто достеменно не знав, яке місце посів, тільки здогадувався. Особливо складно було командам ЛНУ ім. Івана Франка і ДонНУ, які мали між собою з’ясувати, який вищий навчальний заклад – третій у південно-східній Європі. Традиційно нагороджувати починають з кінця турнірної таблиці. Коли нагородили 8 місце, настав момент “істини”… Сьоме місце посіла команда ДонНУ, отже, команда з ЛНУ ім. Івана Франка здобула шосте місце і стала третім ВНЗ на змаганні. Недарма так важко було підрахувати, хто на якому місці, оскільки різниця між командами становила лише 8 хвилин штрафного часу: ЛНУ ім. Івана Франка – 951, ДонНУ – 959 хвилин. Перемогла, як і очікували, команда з Таврійського національного університету ім. В. І. Вернадського. Поглянувши потім на результати змагання, усі були трохи приголомшені: у першій десятці – дев’ять українських команд, і тільки одна команда з Румунії, і то аж на восьмому місці.
Отже, команда ЛНУ ім. Івана Франка посіла третє місце серед університетів. Це означає, що, найімовірніше, нас запросять на фінал світу, оскільки цього року мають дати три прохідні місця для нашого регіону, враховуючи попередні успіхи. Остаточне рішення про це ухвалюватимуть на засіданні директорів змагання, яке відбудеться в грудні цього року. Щоб бути готовою гідно виступити у фіналі світу, команда “LNU United” інтенсивно тренується – 6 днів на тиждень по багато годин.

Руслан Бабіля,
тренер команди “LNU United”