26-oktyabr kuni Toshkentda ICPC (International Collegiate Programming Contest) dasturlash boʻyicha xalqaro talabalar olimpiadasining respublika bosqichi boʻlib oʻtadi.
Saralash bosqichi 8-oktyabr kuni IT Parkning mintaqaviy filiallarida boʻlib oʻtadi. Ishtirok etish uchun roʻyxatdan oʻtish allaqachon ochiq va ushbu havola orqali mavjud. Olimpiadada uch nafar universitet talabalaridan iborat jamoalar ishtirok etishlari mumkin.
ICPC qoidalariga muvofiq chempionatda faqat universitet talabalari ishtirok etishlari mumkin.
Eslatma: Yakuniy bosqichga bitta universitetdan ko‘pi bilan 4 ta jamoa tanlab olinadi. Murabbiy chempionat rasmiy saytida ishtirokchilarni ro‘yxatdan o‘tkazishga mas’ul.
ICPC jamoaviy musobaqalarini oʻtkazish qoidalari
Musobaqalarda uchta ishtirokchidan iborat jamoalar ishtirok etadi. Musobaqa bir turda oʻtkaziladi. Turning davomiyligi — 5 soat. Kutilmagan holatlar yuzaga kelgan taqdirda hakamlar hayʼati tur vaqtini uzaytirishi mumkin.
Musobaqa davomida har bir jamoaga C/C++, Python va Java kompilyatorlari oʻrnatilgan bitta kompyuter beriladi. Tur boshlanishidan oldin ishtirokchilarni musobaqani oʻtkazish tizimining texnik va dasturiy taʼminoti bilan tanishtirish uchun vaqt ajratilishi mumkin.
Tur oldidan ishtirokchilarga boʻsh qogʻoz beriladi. Ishtirokchilarga ish joyida oʻzlarining axborot saqlash vositalarini ishlatish (disketlar, CD-disklar va boshqalar), shuningdek tur davomida shaxsiy kompyuterlar, kalkulyatorlar, elektron qayd daftarlar, aloqa vositalari (peyjerlar, mobil telefonlar va boshqalar), tayyorlangan qayd kitobchalaridan foydalanish taqiqlanadi. Jamoa tomonidan olib kelingan oʻquv va maʼlumotnoma adabiyotlaridan (har bir jamoaga 6 tadan koʻp boʻlmagan kitob, musobaqa paytida adabiyotni boshqa jamoalarga oʻtkazish taqiqlanadi) va ipc.susu.ru saytidagi maʼlumotnomalardan foydalanishga ruxsat beriladi.
Tur hakamlar hayʼatining signali bilan boshlanadi. Tur boshlanishidan oldin topshiriqlarni olish va oʻqish, klaviaturaga tegish yoki kompyuterda biron bir harakatni bajarish taqiqlanadi.
Tur boshlangandan soʻng, jamoa hakamlar hayʼati aʼzolariga topshiriqlarning shartlari boʻyicha savollar berish huquqiga ega. Savollar “HA” yoki “YOʻQ” javobini talab qiladigan shaklda tuzilishi kerak. Savollar dasturiy taʼminot orqali hakamlar hayʼatiga yuboriladi. Hakamlar hayʼati savolga javob berganida, ishtirokchi tarmoq orqali xabar oladi. Agar savol topshiriq shartiga muvofiq berilmagan boʻlsa yoki savolning javobi topshiriq shartida mavjud boʻlsa, hakamlar hayʼati “IZOHSIZ” deb javob berishi mumkin. Hakamlar hayʼati barcha ishtirokchilarga savol va hakamlar hayʼati tomonidan unga berilgan javobni topshiriq bayonini tushuntirish sifatida tarqatishi mumkin.
Tur davomida jamoa aʼzolari faqatgina oʻzaro, navbatchilar va hakamlar hayʼati aʼzolari bilan muloqot qilishlari mumkin.
Musobaqa davomida ishtirokchilar oʻz dasturlari roʻyxatini chop etishlari mumkin. Roʻyxatlar chop etish tugagandan soʻng navbatchilar tomonidan jamoaga keltiriladi. Har bir jamoa uchun chop etiladigan sahifalar soni boʻyicha cheklov musobaqadan oldin eʼlon qilinadi.
Ishtirokchilar kompyuter yoki dasturiy taʼminotdagi nosozliklar toʻgʻrisida darhol navbatchiga xabar berishlari kerak. Hakamlar hayʼati qaroriga koʻra, jamoaga kompyuterning ishlashini tiklash uchun sarflangan vaqt qoʻshib berilishi mumkin.
Hamma jamoaga har bir tur vaqtida dasturlar va boshqa kerakli fayllar saqlanadigan ishchi katalog ajratiladi. Tur davomida topshiriqlarni hal qilish natijalarining yaxlitligi uchun faqatgina jamoa javobgar boʻladi.
Musobaqada kamida 6 ta vazifani hal qilish taklif etiladi. Ushbu vazifalarning yechimi maqbul dasturlash tillaridan birida ishlab chiqilgan dasturlar boʻlishi kerak. Dastur bitta fayldan iborat boʻlishi kerak va vazifa shartida maxsus koʻrsatilmagan boʻlsa, yordamchi modullar yoki fayllarga havola qilinmasligi kerak. Hakamlar hayʼati olingan yechimni kompilyatorlar (ilgari koʻrsatilgan) yordamida kompilyatsiya qiladi, shuning uchun standart sozlamalardan tashqari barcha kompilyatsiya variantlari dastlabki faylda koʻrsatilishi kerak. Dasturning dastlabki matni bilan birgalikdagi fayl hajmi 30 000 baytdan oshmasligi kerak. Turli xil vazifalarni turli dasturlash tillari yordamida hal qilish mumkin.
Barcha vazifalarda kiritish standart kiritishdan (stdin, yaʼni klaviatura, ammo USE CRTʼsiz), chiqarish esa standart chiqarishdan (stdout, yaʼni ekran) amalga oshiriladi. “input.txt” faylidan kiritish va “output.txt” fayliga chiqarishga ruxsat beriladi (fayl nomlari faqat kichik harflardan iborat boʻlishi va disk yoki katalog nomlarini oʻz ichiga olmasligi kerak). Dastur quyidagi buyruq yordamida ishga tushiriladi:
program output.txt
Shuning uchun, dasturda kiritish va xatoliklarni to‘g‘irlovchi chop etish uchun koʻrsatmalar boʻlmasligi kerak. Kirish faylining formati spetsifikatsiyaga mos keladi, qoʻshimcha tekshiruvlar talab qilinmaydi. Barcha satrlar, shu jumladan eng oxirgisi, yangi qatorga oʻtish belgisi (\n) bilan tugaydi.
Vazifalarni hal qilishda ishtirokchilarga quyidagilardan foydalanish taqiqlanadi:
Yechimlarni tekshirish musobaqa paytida amalga oshiriladi. Yechim musobaqa oʻtkazish tizimining dasturiy taʼminoti yordamida tekshirish uchun yuboriladi. Jamoa musobaqa davomida tayyor boʻlishi bilanoq bitta vazifaning yechimini bir necha marta yuborishi mumkin. Tekshirish paytida jamoa boshqa vazifalar ustida ishlashni davom ettirishi mumkin. Agar vazifa hakamlar hayʼati tomonidan qabul qilingan boʻlsa, unda yangi yechimlar yuborilmasligi kerak.
Hakamlar hayʼati yechimni tekshirganda, jamoa test natijalari boʻlgan xabarni oladi. Unda vazifa qabul qilinganligi yoki kompilyatsiya xatosi yuz berganligi haqida xabar beriladi yoki muvaffaqiyatsiz testlarning birinchisida aniqlangan xatolik koʻrsatiladi.
Xabarlarning mumkin boʻlgan turlari:
Belgilanishi |
Xabar |
Mumkin bo'lgan sabab va harakatlar |
AC |
Qabul qilindi |
Yechim hakamlar hayʼatining barcha sinovlaridan muvaffaqiyatli oʻtdi, keyingi vazifaga oʻting. |
CE |
Kompilyatsiya xatoligi |
Dasturda sintaksis xatoligi mavjud, yechimni yuborganda dasturlash tilini notoʻgʻri koʻrsatgan boʻlishingiz yoki standartga mos kelmaydigan til konstruksiyalaridan foydalanayotgan boʻlishingiz mumkin. Ushbu xabarni bosish orqali xatolik boʻlgan qatorlarni aniqlash uchun kompilyatsiya xatoliklari roʻyxatiga qarang. Ushbu xato uchun jarima qoʻshilmaydi. |
WA |
Test #: notoʻgʻri javob |
Notoʻgʻri yechim algoritmi. Dasturni sinab koʻring va xatolikni toping. |
TL |
Test #: vaqt chegarasidan oshib ketish |
Samarasiz yechim, sikldan chiqish shartidagi xatolik yoki dastur oxirida tugmachani bosishni kutish. Dasturni katta testlarda sinab koʻring. |
ML |
Test #: xotira chegarasidan oshib ketish |
Dastur juda koʻp xotiradan foydalanmoqda. Axborotni saqlashning yanada samarali usullaridan foydalaning. |
RT |
Test #: bajarish vaqti xatoligi |
1) massiv chegarasidan tashqariga chiqish, 0 ga boʻlish yoki manfiy sonning logarifmi kabi xatolik; 2) C tilidagi dastur return 0 operatori bilan tugamaydi; 3) exit(1) yoki stop(1) funksiyalari yordamida nolga teng boʻlmagan kodli dasturni tugatish; 4) xotira chegarasidan oshib ketish yoki boshqa qoʻpol istisno holat. |
PE |
Test #: taqdimot xatoligi |
Chiqish faylining formati vazifa shartidagi talablarga javob bermaydi. |
Ishtirokchilarning yechimlari hakamlar hayʼati tomonidan oldindan tayyorlangan testlar toʻplamida tekshiriladi. Yechim ishga tushirish vaqti va dasturiy taʼminot muhitidan qatʼiy nazar, bir xil testlarga bir xil javoblarni berishi kerak. Yechim, agar u barcha testlardan oʻtgan boʻlsa, hakamlar hayʼati tomonidan qabul qilinadi. Test nafaqat dastur notoʻgʻri javob berganda, balki testni bajarish vaqti va yechish paytida foydalanilgan xotira uchun belgilangan cheklovlar oshib ketgan taqdirda ham muvaffaqiyatsiz deb hisoblanadi. Qisman yechimlar (barcha testlardan oʻtmagan) baholanmaydi. Hakamlar hayʼati topshiriqlarni shakllantirishda dasturning bitta testda ishlash vaqti va mavjud xotira hajmi boʻyicha cheklovlarni koʻrsatadi.
Yechimni tekshirish natijalarida sinovdan oʻtmagan birinchi testning raqami koʻrsatiladi. Masalan, agar hakamlar hayʼati “Test 9: Vaqt chegarasidan oshib ketish” deb xabar bergan boʻlsa, demak:
Bunday holda, algoritm ehtimol toʻgʻri, ammo samarasiz degan xulosaga kelishimiz mumkin.
Musobaqalar davomida jamoalar musobaqalarni oʻtkazish tizimining dasturiy taʼminotidan foydalangan holda raqiblarining joriy natijalarini kuzatib borishlari mumkin. Musobaqa tugashidan 60 daqiqa oldin natijalar jadvali “muzlatiladi”.
Musobaqa tartibi va qoidalarini buzganligi uchun jamoa hakamlar hayʼati qarori bilan diskvalifikatsiya qilinishi mumkin.
Eng koʻp topshiriqlarni toʻgʻri hal qilgan jamoa gʻalaba qozonadi. Bajarilgan topshiriqlar soni teng boʻlgan taqdirda, texnik natijalar bayonnomasida qayd etilgan topshiriqlarni hal qilishning eng qisqa umumiy vaqtga ega boʻlgan jamoa gʻalaba qozonadi. Topshiriqni hal qilish vaqti — bu toʻgʻri yechimni tekshirish uchun hakamlar hayʼati topshiriqni qabul qilgan vaqt. Notoʻgʻri yechimni sinab koʻrish uchun hakamlar hayʼatiga murojaat qilish har bir murojaat uchun 20 daqiqa jarima vaqtini qoʻshadi. Umumiy vaqtda faqat toʻgʻri hal qilingan vazifalar uchun jarima vaqti hisobga olinadi.
Apellyatsiya oʻtkazilmaydi.
Hakamlar hayʼati testlarning toʻgʻriligini aniqlash, baholash, gʻoliblarni aniqlash va ishtirokchilarni diskvalifikatsiya qilishning mutlaq huquqiga ega. Hakamlar hayʼati kutilmagan hodisalar va holatlar natijasida yuzaga keladigan masalalarni koʻrib chiqadi. Hakamlar hayʼatining qarorlari kvorum (tarkibning kamida 2/3 qismi) mavjud boʻlganda koʻpchilikning ovoz bilan qabul qilinadi, tegishli bayonnoma bilan rasmiylashtiriladi, yakuniy hisoblanadi va shikoyat qilinishi mumkin emas.
Musobaqa davomida ushbu qoidalarga har qanday oʻzgartirish va qoʻshimchalar faqat hakamlar hayʼati qarori bilan kiritilishi mumkin, bu haqda barcha ishtirokchilar oldindan xabardor qilinadi.
2023-09-20