бүгүн ICPC 2019 программалоо боюнча эл аралык сынактын финалы Португалиянын Порту шаарында өтөт. Ага ITMO университетинин өкүлдөрү жана Россия, Кытай, Индия, АКШ жана башка өлкөлөрдүн университеттери катышат. кененирээк айтып берели.
icpcnews /flickr/ CC BY / Пхукеттеги ICPC-2016 финалынан сүрөттөр
ICPC деген эмне
ICPC студенттер арасында программалоо боюнча эл аралык сынак болуп саналат. Алар 40 жылдан ашык убакыттан бери өткөрүлүп келет - биринчи финал мен эле кайра 1977-жылы. Тандоо бир нече этап менен жүргүзүлөт. Университеттер региондор боюнча бөлүнөт (Европа, Азия, Африка, Америка ж.б.). Алардын ар бири орто этаптарды, атап айтканда Түндүк Евразия жарым финалын өткөрөт университетибизде болуп өттү. Финалга облустук этаптын жеңүүчүлөрү катышат.
ICPCте үч катышуучудан турган командаларга бир компьютерди (Интернетке туташкан эмес) колдонуу менен бир катар маселелерди чечүү сунушталат. Ошентип, программалоо көндүмдөрүнөн тышкары, командада иштөө көндүмдөрү да текшерилет.
Мелдештин жүрүшүндө командалар бир компьютер алат үч адам үчүн. Ал Ubuntu 18.04 иштейт жана vi/vim, gvim, emacs, gedit, geany жана Кейт алдын ала орнотулган. Сиз Python, Kotlin, Java же C++ программаларын жаза аласыз.
Команда көйгөйдү чечкенде, аны кодду баалаган тестирлөө серверине жөнөтөт. Катышуучулар аппарат кандай сыноолорду аткарып жатканын билишпейт. Алардын баары ийгиликтүү болсо, команда бонустук упайларды алат. Болбосо, ката түзүлүп, студенттер кодду оңдоого жөнөтүлөт.
ICPC эрежелери боюнча, эң көп маселени чечкен команда жеңет. Эгерде мындай командалар бир нече болсо, анда жеңүүчү эң аз айып убактысы боюнча аныкталат. Катышуучулар ар бир чечилген маселе үчүн айып мүнөттөрүн алышат. Мүнөттөрдүн саны сынак башталгандан тесттик сервер тарабынан тапшырманы кабыл алганга чейинки убакытка барабар. Эгерде команда чечимди тапса, анда аны өткөрүп берүү үчүн ар бир туура эмес аракет үчүн дагы жыйырма мүнөттүк айып пул алат.
icpcnews /flickr/ CC BY / Пхукеттеги ICPC-2016 финалынан сүрөттөр
Примеры задач
Чемпионаттын максаттары команданын координациясын жана концентрациясын талап кылат. Мындан тышкары, алар жеке математикалык алгоритмдер боюнча билимдерин сынашат. Бул жерде ICPC 2018 катышуучуларына сунушталган тапшырманын мисалы:
Типографияда "дарыя" деген термин бар - бул тексттин бир нече саптарынан түзүлгөн сөздөрдүн ортосундагы боштуктардын ырааттуулугу. Белгилүү бир дарыя эксперти (чыныгы) китеп чыгаргысы келет. Ал бир мейкиндиктүү шрифтте басып чыгарууда баракта эң узун типографиялык дарыялардын “түзүлүшүн” каалайт. Катышуучулар бул шарт аткарыла турган талаалардын туурасын аныкташы керек болчу.
Киргизүүдө программа бүтүн n санын (2 ≤ n ≤ 2) алды, ал тексттеги сөздөрдүн санын аныктайт. Андан кийин текст киргизилди: бир саптагы сөздөр бир боштук менен бөлүнүп, 500 символдон турушу мүмкүн эмес.
Жыйынтыгында программа эң узун «дарыя» пайда болгон талаалардын туурасын жана бул дарыянын узундугун көрсөтүүгө тийиш болчу.