Skip to Content

Міжнародна студентська олімпіада ACM ICPC

Історія

Міжнародний командний чемпіонат з програмування сягає своїм корінням у змагання, що проводилися в Техаському університеті в 1970. Свій нинішній вигляд чемпіонат прийняв в 1977 році, коли перший фінал був проведений в рамках щорічної конференції ACM з інформатики, і з тих пір проводиться щорічно.
Міжнародна студентська олімпіада з програмування (в англійській прийнято скорочення ACM / ICPC або просто ICPC) - найбільша студентська командна олімпіада з програмування.

  • Історія
  • Правила
  • Етапи

Чемпіонат проводиться під егідою асоціації обчислювальної техніки (ACM). Починаючи з 1989 року, організацією змагань займається університет Бейлора. У різний час спонсорами змагань ставали такі компанії, як Apple, AT & T і Microsoft, проте з 1997 року по теперішній час генеральним спонсором є компанія IBM.

З 1977 по 1989 в олімпіаді переважно брали участь команди вузів зі США і Канади. До теперішнього моменту олімпіада перетворилася у всесвітнє змагання: в 2009 році в ній взяло участь 7109 команд з 88 країн, 100 з яких зійшлися в боротьбі за головний трофей у фінальному турнірі. Кількість команд продовжує рости на 10-20% на рік, так що в майбутньому змагання обіцяють стати ще більш представницьким.

Україна і такі країни колишнього СРСР, як Азербайджан, Вірменія, Білорусь, Грузія, Казахстан, Киргизія, Латвія, Литва, Узбекистан, Естонія, входять до Північно-Східного Європейського регіону, щорічно делегує на фінальний турнір 10-12 своїх кращих команд.

Правила

Олімпіада - командне змагання. Кожна команда складається з трьох студентів. До участі допускаються студенти вищих навчальних закладів, а також аспіранти першого року навчання. Студенти, що двічі брали участь у фінальній стадії олімпіади, або п'ятикратно брали участь у регіональному відборі, не допускаються до участі.

Тур олімпіади відбувається наступним чином: кожній команді видається комп'ютер і від восьми до дванадцяти завдань на п'ять годин. Команди пишуть рішення на алгоритмічних мовах програмування C, C + + або Java і посилають їх на тестує сервер. Програми тестуються на великій кількості різних вхідних тестів, невідомих учасникам. Якщо програма видала невірну відповідь або не вклалася в обмеження щодо часу або пам'яті, то команда отримує про це повідомлення і може послати виправлену версію. Завдання вважається вирішеною, якщо програма видала правильні відповіді на всіх тестах. На відміну від інших олімпіад, часткові рішення не враховуються.

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

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

Багато університетів проводять свої олімпіади використовуючи формат ACM ICPC, оскільки даний формат може вважатися одним із найвдаліших.

Етапи

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