Hazırda Portuqaliyanın Porto şəhərində ICPC 2019 beynəlxalq proqramlaşdırma müsabiqəsinin finalı keçiriləcək.Orda ITMO Universitetinin və Rusiya, Çin, Hindistan, ABŞ və digər ölkələrin universitetlərinin digər komandalarının nümayəndələri iştirak edəcəklər. Sizə daha ətraflı danışaq.
icpcnews /flickr/ CC BY / Phuketdə keçirilən ICPC-2016 finalından fotolar
ICPC nədir
ICPC tələbələr arasında proqramlaşdırma üzrə beynəlxalq müsabiqədir. Onlar 40 ildən çoxdur keçirilir - ilk final keçdi 1977-ci ildə. Seçim bir neçə mərhələdə aparılır. Universitetlər regionlara görə bölünür (Avropa, Asiya, Afrika, Amerika və s.). Onların hər biri aralıq mərhələlərə, xüsusən də Şimali Avrasiya yarımfinallarına ev sahibliyi edir universitetimizdə baş tutdu. Regional mərhələlərin qalibləri finalda iştirak edirlər.
ICPC-də üç iştirakçıdan ibarət komandalara bir kompüterdən (İnternetə qoşulmayan) istifadə edərək bir sıra problemləri həll etmək təklif olunur. Beləliklə, proqramlaşdırma bacarıqları ilə yanaşı, komandada işləmək bacarığı da yoxlanılır.
Yarış zamanı komandalar bir kompüter alacaq üç nəfər üçün. O, Ubuntu 18.04 ilə işləyir və əvvəlcədən quraşdırılmış vi/vim, gvim, emacs, gedit, geany və kate var. Python, Kotlin, Java və ya C++ dillərində proqramlar yaza bilərsiniz.
Komanda problemi həll etdikdə onu kodu qiymətləndirən test serverinə ötürür. İştirakçılar maşının hansı testləri yerinə yetirdiyini bilmirlər. Hamısı uğurlu olarsa, komanda bonus xalları alır. Əks halda xəta yaranır və tələbələr kodu düzəltmək üçün göndərilir.
ICPC qaydalarına əsasən, ən çox problemi həll edən komanda qalib gəlir. Bir neçə belə komanda varsa, qalib ən kiçik penalti vaxtı ilə müəyyən edilir. İştirakçılar həll olunan hər bir problem üçün cərimə dəqiqələri alırlar. Dəqiqələrin sayı müsabiqənin başlanmasından test serveri tərəfindən tapşırığın qəbuluna qədər olan vaxta bərabərdir. Komanda bir həll tapsa, onu ötürmək üçün hər səhv cəhdə görə daha iyirmi dəqiqə cəza alır.
icpcnews /flickr/ CC BY / Phuketdə keçirilən ICPC-2016 finalından fotolar
Nümunə problemləri
Çempionatın məqsədləri komanda koordinasiyasını və konsentrasiyanı tələb edir. Bundan əlavə, onlar fərdi riyazi alqoritmlər haqqında bilikləri yoxlayırlar. ICPC 2018 iştirakçılarına təklif edilən tapşırıq nümunəsidir:
Tipoqrafiyada "çay" termini var - bu, bir neçə mətn sətirindən əmələ gələn sözlər arasındakı boşluqların ardıcıllığıdır. Müəyyən bir çay mütəxəssisi (həqiqətən) kitab nəşr etmək istəyir. O, monospased şriftlə çap edərkən səhifədə ən uzun tipoqrafik çayların “formalanmasını” istəyir. İştirakçılar bu şərtin yerinə yetiriləcəyi sahələrin genişliyini müəyyən etməli idilər.
Girişdə proqram mətndəki sözlərin sayını təyin edən n (2 ≤ n ≤ 2) tam ədədi aldı. Sonra mətn daxil edildi: bir sətirdəki sözlər bir boşluqla ayrıldı və 500-dən çox simvoldan ibarət ola bilməz.
Çıxışda proqram ən uzun "çayın" yarandığı sahələrin enini və bu çayın uzunluğunu göstərməli idi.