Leo Fainali za shindano la kimataifa la programu ICPC 2019 litafanyika katika jiji la Ureno la Porto. Wawakilishi wa Chuo Kikuu cha ITMO na timu zingine kutoka vyuo vikuu vya Urusi, Uchina, India, USA na nchi zingine watashiriki. Hebu tuambie kwa undani zaidi.
icpcnews /flickr/ CC BY / Picha kutoka kwa fainali za ICPC-2016 huko Phuket
ICPC ni nini
ICPC ni mashindano ya kimataifa ya programu kati ya wanafunzi. Wameshikiliwa kwa zaidi ya miaka 40 - fainali ya kwanza kupita nyuma mnamo 1977. Uchaguzi unafanywa katika hatua kadhaa. Vyuo vikuu vimegawanywa na kanda (Ulaya, Asia, Afrika, Amerika, nk). Kila moja yao inaandaa hatua za kati, haswa nusu fainali ya Eurasia Kaskazini ilifanyika katika chuo kikuu chetu. Washindi wa hatua za kanda wanashiriki katika fainali.
Katika ICPC, timu za washiriki watatu wanaombwa kutatua matatizo kadhaa kwa kutumia kompyuta moja (haijaunganishwa kwenye Mtandao). Kwa hivyo, pamoja na ujuzi wa programu, ujuzi wa kazi ya pamoja pia hujaribiwa.
Wakati wa mashindano, timu itapokea kompyuta moja kwa watu watatu. Inaendesha Ubuntu 18.04 na ina vi/vim, gvim, emacs, gedit, geany na kate iliyosakinishwa mapema. Unaweza kuandika programu katika Python, Kotlin, Java au C++.
Timu inapotatua tatizo, huipeleka kwa seva ya majaribio, ambayo hutathmini msimbo. Washiriki hawajui ni majaribio gani mashine inafanya. Ikiwa zote zimefanikiwa, timu hupokea alama za bonasi. Vinginevyo, hitilafu huzalishwa na wanafunzi hutumwa kurekebisha msimbo.
Kulingana na sheria za ICPC, timu inayosuluhisha shida nyingi hushinda. Ikiwa kuna timu kadhaa kama hizo, basi mshindi amedhamiriwa na wakati mdogo wa adhabu. Washiriki hupokea dakika za adhabu kwa kila tatizo lililotatuliwa. Idadi ya dakika ni sawa na muda kutoka mwanzo wa ushindani hadi kukubalika kwa kazi na seva ya mtihani. Ikiwa timu itapata suluhu, basi itapokea dakika nyingine ishirini za adhabu kwa kila jaribio lisilo sahihi la kuipita.
icpcnews /flickr/ CC BY / Picha kutoka kwa fainali za ICPC-2016 huko Phuket
Mifano ya kazi
Malengo ya ubingwa yanahitaji uratibu wa timu na umakini. Zaidi ya hayo, wao hujaribu ujuzi wa algorithms ya hisabati ya mtu binafsi. Huu hapa ni mfano wa kazi ambayo ilitolewa kwa washiriki wa ICPC 2018:
Katika uchapaji, kuna neno "mto" - huu ni mlolongo wa nafasi kati ya maneno, ambayo huundwa kutoka kwa mistari kadhaa ya maandishi. Mtaalam fulani wa mto (kwa kweli) anataka kuchapisha kitabu. Anataka mito mirefu zaidi ya uchapaji "kuunda" kwenye ukurasa wakati wa kuchapisha katika fonti ya nafasi moja. Washiriki walipaswa kuamua upana wa mashamba ambayo hali hii itafikiwa.
Katika pembejeo, programu ilipokea integer n (2 β€ n β€ 2), ambayo huamua idadi ya maneno katika maandishi. Ifuatayo, maandishi yaliingizwa: maneno kwenye mstari mmoja yalitenganishwa na nafasi moja na hayakuweza kuwa na herufi zaidi ya 500.
Katika pato, mpango huo ulipaswa kuonyesha upana wa mashamba ambayo "mto" mrefu zaidi hutengenezwa, na urefu wa mto huu.