A. Duck Hunting 2D GAME
Xotira: 16 MB, Vaqt: 1000 msDuck Hunting 2D GAME o'yinida ovchi o'rdak ovlashi kerak bo'ladi. O'yin 2D ya'ni ikki o'lchamli koordinatada bo'lib o'tadi.
Ovchi \((0,0)\) koordinatada joylashgan, u faqat vertikal ravishda miltiqdan o'q uzadi. Vertikal uzilgan o'q osmondagi o'rdakni yaralasa ovchining qo'liga kelib tushadi. Dastlab osmonda jami bo'lib \(N\) ta o'rdak bor va har bir uzilgan o'qdan so'ng ovchi miltiqni qayta o'qlashi uchun \(R\) soniya vaqt sarflaydi. Barcha o'rdaklar \(Ox\) o'qiga nisbatan teskari ya'ni manfiy yo'nalishda harakat qilmoqda, sizga har bir o'rdakning \(Ox\) o'qiga nisbatan qaysi oraliqda uchayotgani beriladi. Har bir o'rdak 1 soniyada \(Ox\) o'qiga nisbatan chap tomonga bir birlik siljiydi.
O'rdak uchayotgan balandlik muhim emas chunki miltiqdan otilgan o'q cheksiz balandlikka ko'tariladi va yo'lidagi barcha o'rdaklarni yaralaydi(dastlab miltiq o'qlangan).
Kirish faylining dastlabki satrida \(N,R(1\leq N\leq 200, 1\leq R\leq 10^9)\) mos ravishda o'rdaklar soni va miltiqni qayta o'qlashi uchun ketadigan vaqt. Kiyingi \(N\) ta satrda \(x1_i,x2_i(-10^9\leq x1\leq x2\leq10^9)\) juftliklar \(i-\)o'rdak qaysi oraliqda ekanligi.
Chiqish faylida optimal o'ynaydigan o'yinchi ko'pi bilan qancha o'rdakni ovlay olishini chop eting.
1-test:
Ushbu test rasimda tasvirlangan optimal o'ynaydigan o'yinchi \(1-\)chi va \(3-\)chi o'rdaklarni bir o'q bilan urib tushiradi(ikkalasixam \(0\) nuqtadan uchishni boshlagan) va miltiqni qayta o'qlash uchun \(3\) soniya vaqt sarflab \(2-\)chi o'rdakni yaralaydi(\(2-\)chi o'rdak \(3\) nuqtadan uchishni boshlagan).
Shuni unitmanki \(i-\)chi o'rdak \([x1_i, x2_i]\) oraliqning istalgan butun nuqtasidan uchishni boshlagan deb qarashingiz mumkun.
# | INPUT.TXT | OUTPUT.TXT |
---|---|---|
1 |
3 3 -3 0 1 3 -1 2 |
3 |
B. 2048
Xotira: 16 MB, Vaqt: 1000 ms2048 juda ajoyib va qiziqarli o'yin.... O'yin shartlari quyidagicha.
1. o'yin 4x4 jadvalda bo'ladi.
2. o'yin avvalida jadvalning istalgan ikkita katakchasiga 2 soni joylashtiriladi.
3. bir harakatda jadval dagi sonlar yuqoriga, pastga, o'ngga, chapga (faqat bittasiga) surilishi mumkin. Jadvaldagi sonlar qaysi tomonga surilsa, shu yo'nalish bo'yicha to'siqqa duch kelmaguncha suriladi. Agar son surilayotgan yo'nalishida o'ziga teng boshqa son bo'lsa ikkalasi birlashadi va ularning yig'indisiga teng bo'lgan son hosil bo'ladi.
4. har bir harakatda jadvalning ixtiyoriy bo'sh bo'lgan katakchalaring birida (faqat bittasida) yana 2 soni paydo bo'ladi.
5. o'yin jadvalda bo'sh katakchalar qolmaguncha davom etadi.
Sizning vazifangiz berilgan bir nechta harakatdan keyin jadvalda hosil bo'ladigan eng katta sonni aniqlashdan iborat.
Birinchi 4 ta qatorda o'yinning boshlanishdan oldingi holati beriladi. Bu yerda * bo'sh joyni ifodalaydi.
5-qatorda berilgan harakatlar soni N beriladi.
Keyingi N ta qatorning har birida esa jadvalni qaysi tomonga surilgani (R-o'ngga, L-chapga, U-yuqoriga, D-pastga) va har bir surilishdan so'ng yangi 2 soni paydo bo'ladigan katakchaning kordinatasi X va Y beriladi. ( 1 <= N <= 10, 1 <= X, Y <=4)
Berilgan harakatlar natijasida o'yinda hosil boladigan eng katta sonni aniqlang.
1-test uchun na'muna:
# | INPUT.TXT | OUTPUT.TXT |
---|---|---|
1 |
**2* **** **** ***2 5 U 1 1 U 1 1 L 2 2 R 2 1 D 2 2 |
4 |
C. Shashka o'yini
Xotira: 16 MB, Vaqt: 1000 msShashka o'ynamagan odam bo'lamasa kerak, shundaymi?
Shunday bo'lsa ham o'yin shartlari va qoidalarini yana bir eslatib o'tamiz.
1. Shashka o'yini 8x8 taxtada o'ynaladi.
2. Taxtaning chap tomondagi birinchi katagi qora rangli bo'ladi. Qolgan kataklari esa "qo'shni kataklar turli hil rangli bo'ladi" degan qoida bilan yasaladi.
3. O'yinda 12 ta oq va 12 ta qora donachalar mos ravishta taxtaning boshidagi 3 ta va oxiridagi 3 ta qatorlarning faqat qora katakchalariga joylanadi
4. Bitta o'yin donachasi faqat o'zining harakat yo'nalishiga nisbatan bitta oldindagi qora katakchaga yura oladi. (Agar katakcha bo'sh bo'lsa)
5. Agar o'yin donachasining yurish yonalishida raqib donachasi bo'lsa va shu yo'nalishdagi undan keyingi katak bo'sh bo'lsa donacha o'sha bosh katakka o'tadi va raqib donachasi o'yindan olib tashlanadi. (Raqib donasini urib olish majburiy emas)
Sizga shashka o'yinidagi yurish navbati oq donalarda bo'lgan bir holat beriladi. Siz esa shu holatda oqlarning bironta donachasi qoralarning donachasini urib olsa bo'ladimi yo'qmi topishingiz kerak.
8x8 jadvalda shashka o'yinidagi holat beriladi, bu yerda 1 oqlar, 0 qoralar, * esa bo'sh joylar.
Agar oq donachalar raqibni donachalarini urib olish imkoniyati mavjud bo'lsa "Yes", aks holda "No" chiqaring.
# | INPUT.TXT | OUTPUT.TXT |
---|---|---|
1 |
*0*0*0*0 0*0*0*0* ***0*0*0 **0***** ***1**** 1***1*1* *1*1*1*1 1*1*1*1* |
Yes |
2 |
*0*0*0*0 0*0*0*0* *0*0***0 ******0* ***1**** 1***1*1* *1*1*1*1 1*1*1*1* |
No |
D. Karta o'yini #2
Xotira: 16 MB, Vaqt: 1000 msICPC 2022 yarim finaliga qatnashish uchun DASTURCHILAR KLUBI a'zolari "uzoq" safarga yo'l olishdi. Ular yo'lda zerikib qolmasliklari uchun karta o'ynab ketishga qaror qilishdi. O'yin shartlari quyidagicha edi.
1. O'yinda K ta o'yinchi qatnashadi.
2. Ularning har birida N tadan o'yin kartalari bor.
3. O'yin kartalari lotin alifbosining katta harflari bilan belgilangan.
4. O'yin davomida 1-o'yinchi yerga o'zining BIRINCHI kartasini tashlaydi, keyin esa navbat bilan o'yinchilar o'zlarining birinchi kartalarini yerdagi kartalar ustiga tashlashadi. (o'yinchilar har bir tashlashda faqat bitta, o'z qolidagi birichi kartani tashlaydi).
5. O'yin hamma o'z kartalarini tashlab bo'lgunicha davom etadi.
O'xirida esa istalgan o'yinchi boshqa bir o'yichidan, yuqoridan hisoblanganda M-karta nima ekanligini so'raydi. Sizning vazifangiz shu M-kartani nimaligini topishdan iborat.
Birinchi qatorda K va N sonlari. Keyingi K ta qatorda esa har bir o'yinchining qo'llaridagi N ta kartalar probel bilan ajratilgan holda beriladi. (1 <= K <= 10, 1 <= N <= 26)
Eng so'ngi qatorda esa M soni beriladi. (1 <= M <= N*K)
Yerdagi kartalar ichidan yuqoridan boshlab hisoblanganda M-karta nima ekanligini chiqaring.
# | INPUT.TXT | OUTPUT.TXT |
---|---|---|
1 |
2 5 D F R G H Z X C G R 5 |
C |
2 |
3 10 R F E D C B N K Y D A A A B B B C C C D T H J K U G B V D S 25 |
H |
E. Tap Away #2
Xotira: 16 MB, Vaqt: 1000 msTap Away juda ajoyib o'yin bo'lib, uning qoidalari quyidagicha.
1. O'yin N×M maydonda bo'lib o'tadi.
2. Maydondagi katakchalarga Tepaga, Pastga, Chapga, O'nga yo'nalishlari o'rnatilgan. Agar siz biron katakcha ustiga bossangiz va katakcha yo'nalishi bo'yicha yo'lakda bironta ham belgi bo'lmasa, katakcha o'ziga o'rnatilgan yo'nalish bo'yicha harakat qiladi, aks holda katakcha qimirlamaydi.
3. Siz istalgan katakchaga bosish orqali uni jadvaldan chiqarib yuborishingiz mumkin. Lekin buning uchun katakchaning yo'nalishidagi yo'lda boshqa katakcha bo'lmasligi kerak. Eslatib o'tamiz yo'lida to'siq bo'lmagan katakchani jadvaldan chiqarib yuborish bu bitta harakat hisoblanadi.
Siz jadvaldagi barcha katakchalarni o'yindan chiqarib yuborish uchun eng kamida nechta harakat qilish kerakligini toping.
Birinchi qatorda N va M butun sonlari beriladi. ( 1 <= N,M <= 6)
Keyingi N ta qatorning har birida M tadan belgi probel bilan ajratilgan holda berilari: U-tepaga, D-pastga, L-chapga, R-o'ngga.
Barcha katakchalarni jadvaldan chiqarib yuborish uchun eng kamida nechta harakat qilish kerak. Agar buning imkoni bo'lmasa -1 chiqaring.
1-test uchun na'muna:
# | INPUT.TXT | OUTPUT.TXT |
---|---|---|
1 |
2 2 U D L R |
4 |
2 |
2 2 U D R L |
-1 |
F. Eng kichik son #1
Xotira: 16 MB, Vaqt: 1000 msHa bu o'sha mashxur eng kichik sonni topish o'yini. o'yin shartlari quyidagicha.
Sizga natural son beriladi. Shu sonning raqamlari orasiga +,-,*,/ belgilaridan istalganini qoyib eng kichik son hosil qiling.
1. Raqamlar orasiga belgi qo'yish majburiy.
2. Bittadan ortiq belgi qo'yish mumkin emas.
3. Hisob kitobda avval * yoki / so'ng esa + yoki - ishorasi bajariladi.
4. Har bir raqamlar orasidagi hisob kitob natijasi butun bo'lishi shart.
Bitta qatorda uzunligi 106 dan oshmaydiga natural son.
Hosil qilish mumkin bo'lgan eng kichik butun sonni toping.
# | INPUT.TXT | OUTPUT.TXT |
---|---|---|
1 |
10 |
0 |
2 |
12345 |
-119 |
G. Plus Mania GAME
Xotira: 10 MB, Vaqt: 1000 msQulmamat yaqinda Plus Mania GAME o'yini yaratdi. O'yin \(n×n\) doskada ikki kishi tomonidan o'ynaladi. Birinchi o'yinchi \(n×n\) doskaga '.' va 'o' belgilaridan birini \(1×1\) katakchalarga joylashtirib chiqishi kerak. Ikkinchi o'yinchi esa hosil bo'lgan shaklni maksimal miqdorda 'o' belgilaridan tashkil topgan plus shaklini turli xil bo'yoqlar bilan bo'yab chiqishi kerak(\(1×1\) katakcha bo'yalgan bo'lsa qayta bo'yab bo'lmaydi).
- plus shakli rasimdagidek shaklga ega bo'lishi kerak;
- shakl 'o' belgisidan tashkil topgan bo'lishi va \(5\) ta \(1×1\) katakchani o'z ichiga olishi shart.
Sizning vazifangiz o'yinni boshlab bergan o'yinchi hosil qilgan shakldan maksimal sondagi pluslarni bo'yab chiqgandan so'ng birorta 'o' belgi joylashtirilgan katakcha bo'yalmay qolib ketganmi yo'qmi tekshirish.
Kirish faylining birinchi satrida \(n(3\leq n\leq 50)\) doska o'lchami. Kiyingi \(n\) satrda \(n\) tadan faqatgina '.' va 'o' belgilaridan tashkil topgan birinchi o'yinchi hosil qilgan shakl beriladi.
Chiqish faylida 'o' belgisi joylashtirilgan \(1×1\) katakchalarning barchasini bo'yashni iloji bo'lsa \(yes\) aks holda \(no\) so'zini chop eting.
\(1-\)test rasimdagidek bo'yashni amalga oshiriladi va birorta 'o' belgisi joylashtirilgan \(1×1\) katakchalar qolib ketmaydi.
# | INPUT.TXT | OUTPUT.TXT |
---|---|---|
1 |
5 .o... oooo. .oooo ...o. ..... |
yes |
2 |
5 ..o.. .ooo. ..ooo ...o. ..... |
no |
3 |
5 ..... ..... ..... ..... ..... |
yes |
H. Number jump
Xotira: 16 MB, Vaqt: 1000 msNumber jump o'yini juda qiziqarli o'yin bo'lib, buni quyida bilib olishingiz mumkin.
O'yin avvalida o'yinchiga N soni va M raqami beriladi. O'yinchining o'zi esa sanoqdagi M sonining kordinatasiga joylashib oladi. O'yinchi sanoqdagi N sonidan kichik va M raqami qatnashgan ixtiyoriy songa sakrab o'ta oladi.
Sizning vazifangiz o'yinchi N soni turgan kordinataga bora oladimi yo'qmi aniqlashdan iborat.
Bitta qatorda N natural soni va M raqami. (0 <= M <=9, M <= N <= 1018)
O'yinchi N soniga bora olsa "Yes", aks holda shu songa yetib borish uchun eng kamida qancha masofa qolganini chiqaring.
# | INPUT.TXT | OUTPUT.TXT |
---|---|---|
1 |
10 5 |
5 |
2 |
10 1 |
Yes |