A. Hello, Hi!

Xotira: 16 MB, Vaqt: 1000 ms
Masala

Azimjon o'zining birinchi ″Hello, Hi!″ nomli Telegram botini yaratdi. Bot juda oddiy ishlardi. Unga birinchi marta xabar yuborsangiz ″Hello″, ikkinchi marta xabar yuborsangiz ″Hi!″ degan javob qaytaradi. Uchinchi marta yozsangiz yana ″Hello″, keyingi xabarga yana ″Hi!″ debi javob qaytaradi. Xullas bot qanday ishlashini tushundingiz deb o'ylayman.
Sizdan ham shunga o'xshash dastur tuzishingiz so'raladi. Dasturingizni bir marta ishga tushunganingizda ″Hello″, ikkinchi bor ishga tushursangiz ″Hi!″ so'zi ekranga chiqsin. Keyingisida ″Hello″, keyingisida ″Hi!″, va hokazo.

Kiruvchi ma'lumotlar:

Ixtiyoriy satr yoki matn kitiladi.

Chiquvchi ma'lumotlar:

Unga mos javob chop etilsin.

Misollar:
# INPUT.TXT OUTPUT.TXT
1
/start
Hello
2
Salom
Hi!
3
Bu bot kimniki?
Hello
4
Bu masala kimniki???
Hi!

B. Homework

Xotira: 16 MB, Vaqt: 1000 ms
Masala

Zilola ingliz tili to'garagiga qatnaydi. Ular to'garakda shu oy ichida  ko'proq ″Reading ″ mashq qilishmoqda. Shuning uchun ustozi har kuni o'quvchilarga har xil matn berib tushunib tarjima qilib kelishni  topshirmoqda. Zilola matnni tarjima qilayotganida notanish so'z uchrab qolsa tagiga chizib qo'yardi. Va ushbu kunlik lug'atni alifbo tartibi bo'yicha saralab lug'at daftariga yozib qo'yardi. Agar ushbu notanish so'zlar  ichida oldin ham lug'at daftariga yozganlari bo'lsa uni yozmas edi. Uning bir oy davomida har kungi yozgan so'zlarini (\(i\)- test uchun faqat shu kundagi) va shu so'zlardan keyin endi daftarida  jami nechta so'z borligini chop eting.

Kiruvchi ma'lumotlar:

Sizga faqat tagiga chizilgan so'zlar ko'rinadigan qilib matn beriladi.
ushbu so'zlar soni \(1500\) dan oshmaydi.
Barchasi kichik harflarda beriladi.

\(i- \text {kundagi matn}\ i-\text{testda beriladi}\).

Chiquvchi ma'lumotlar:

Masala javobini chop eting.
Eslatma : 
1. Takrorlangan so'zlardan faqat bitta olinadi
2. \(i-\) kundagi biror so'z oldingi kunlardagi  biror lug'atda mavjud bo'lsa, bu so'z yozilmaydi. 

Izoh:

1-testdagi asl matn

Misollar:
# INPUT.TXT OUTPUT.TXT
1
little            hood              big               wolf     
                  believing                             
                                          little            hood 
                                   little       

                                           latch      
little            hood                           door
believing
big
door
hood
latch
little
wolf
7
2
mouth     hair               eye      nose
         tooth             teeth
ear



lip                            little
     necklace
               shoulder
nail
                        thumb
             finger           hand
                      arm           leg
arm
ear
eye
finger
hair
hand
leg
lip
mouth
nail
necklace
nose
shoulder
teeth
thumb
tooth
23

C. Parol

Xotira: 16 MB, Vaqt: 1000 ms
Masala

Ibrohim yangi kompyuter sotib oldi. Endi u bemalol dasturlashni o'rganishi mumkin. Lekin uning ukasi Husniddin har safar kompyuterda o'yin o'ynab quvvatini tugatib  qo'yaveradi. Shuning  uchun Ibrohim kompyuteriga parol qo'yib qo'ydi. Lekin Husniddin ham osonlikcha taslim bo'ladiganlardan emas. U akasi qo'yishi mumkin bo'lgan parollarni terib topishga harakat qiladi. Buning uchun unda ko'pi bilan \(k\) ta imkoniyat mavjud (Buni Ibrohim parol qo'yayotgan vaqtida o'zgartirishi mumkin). Agar Husniddin komputer parolini to'g'ri topsa yoki \(k\) marta urinishda ham topa olmasa, Ibrohim buni bilib qoladi va parolni yangilaydi (\(k\) ni ham).

Kiruvchi ma'lumotlar:

Ibrohim parolni yangilayotgan paytida \(S\) satr va keyingi qatorda \(k(1\le k \le 15)\) kiritiladi.
Boshqa payt \(s\) satr Husniddinning taxminiy paroli kiritiladi. Har bir taxminiy parol alohida testlarda kiritiladi. 

Chiquvchi ma'lumotlar:

Agar Ibrohim parolni yangilayotgan bo'lsa ″Parol yangilandi!″ deb chiqarilsin.
Agar Husniddin \(k\) ta urinishlardan birida parolni to'g'ri topsa ″Xush kelibsiz″,  \(k\)- urinishda ham parolni noto'g'ri tersa ″Juda ko'p muvaffaqiyatsiz urinish qildingiz, 5 daqiqa kuting″ deb chiqarilsin. (Bu ikki holatdan keyin parol yangilanadi).
Boshqa barcha urinishlarda ″Parol xato, Qayta urunib ko'ring″ deb chiqarilsin. 

 

Izoh:

Ibrohim kompyuterini barmoq izi bilan ham ocha oladi. Shuning uchun u blokdan ochish uchun parol terib o'tirmaydi.

Misollar:
# INPUT.TXT OUTPUT.TXT
1
qwerty
5
Parol yangilandi!
2
abcd
Parol xato, Qayta urunib ko'ring
3
qwerty
Xush kelibsiz
4
Ibrohim
4
Parol yangilandi!
5
qwerty
Parol xato, Qayta urunib ko'ring
6
abcd
Parol xato, Qayta urunib ko'ring
7
943211422
Parol xato, Qayta urunib ko'ring
8
12345
Juda ko'p muvaffaqiyatsiz urinish qildingiz, 5 daqiqa kuting
9
Ibro Him
3
Parol yangilandi!
10
ibro him
Parol xato, Qayta urunib ko'ring

D. Spell

Xotira: 16 MB, Vaqt: 1000 ms
Masala

Ahmadjon 2-sinfda o'qiydi. U yaqinda Ingliz tili to'garagiga bora boshladi. Lekin ingliz tilini o'rganish unga biroz qiyinlik qilmoqda. Sababi ingliz tilidagi harflar juda g'alati talaffuz qilinar ekan. Kitoblarda berilgan talaffuz matnlariga esa umuman tushunib bo'lmaydi. Ahmadjon esa keyingi darsgacha barcha harflarning inglizcha talaffuzini o'rganib olishi kerak. Chunki keyingi darsda inglizcha so'zlarni SPELLING ( harfma-harf  aytish) qilishni o'rganishar ekan.  Ahmadjonning baxtiga uning akasi Baxtiyor ingliz tilini yaxshi bilar edi. U Ahmadjonga ingliz tilidagi barcha harflar talaffuzini ″o'zbekcha″siga yozib berdi.

  • a - ey
  • b - bi
  • c - si
  • d - di
  • e - i
  • f - ef
  • g - ji
  • h - eych
  • i - ay
  • j - jey
  • k - key
  • l - el
  • m - em
  • n - en
  • o - ov
  • p - pi
  • q - kyu
  • r - ar
  • s - es
  • t - ti
  • u - yu
  • v - vi
  • w - dablyu
  • x - iks
  • y - vay
  • z - zed 

Baxtiyor til bilishidan tashqari dasturlashni ham yaxshi biladi.  Ukasiga bergan bu yordamidan keyin Baxtiyorda ajoyib bir dastur tuzish g'oyasi paydo bo'ldi. 
U biror \(S\) satrni kiritganidan so'ng, dasturni har ishga tushirganda \(S\) ning bittadan harfini navbatma-navbat spelling qilib chiqarmoqchi. Biroq dastur u o'ylaganidan biroz murakkabroq chiqib qoldi. Unga yordam bering. 

Kiruvchi ma'lumotlar:

Dastlab ingliz tili alifbosing kichik harflaridan tuzilgan \(S(1\le |S| \le12)\) satr kiritladi . 
keyingi \(|S| - 1\) ta testda \(NEXT\) so'zi kiritiladi (satr to'liq spelling bo'lguncha)

Chiquvchi ma'lumotlar:

Har bir \(|S|\) ta testda \(S\) ni spelling qilib chiqaring. Misollarga qarang!

Izoh:

spelling - imlo 

Misollar:
# INPUT.TXT OUTPUT.TXT
1
hi
h - eych
2
NEXT
i - ay
3
world
w - dablyu
4
NEXT
o - ov
5
NEXT
r - ar
6
NEXT
l - el
7
NEXT
d - di

E. Noodatiy dastur #2

Xotira: 16 MB, Vaqt: 1000 ms
Masala

Qulmamatning ushbu ″karomat″idan keyin Hasan va  Husan ham dasturlashga qiziqib qolishdi va dasturlash kurslariga qatnay boshlashdi. Hozir ular ham ancha-muncha kod yoza oladigan bo'lishdi. Bir kuni ular Qulmamat bilan birga o'tirib, dasturlashga qiziqishlariga sabab bo'lgan o'sha dasturni yana  ko'rmoqchi bo'lishdi. Ular qarasaki Qulmamatning bu dasturi har doim ham to'g'ri ishlamas ekan. Bundan Qulmamat biroz xijolat bo'ldi. Keyin uchovlon shunga o'xshash dastur tuzishga kirishishdi. Dastur  quyidagicha:

  • Dasturni kim ishga tushursa shu odamning ismi ekranga chiqishi kerak.
  • Dasturni avval Qulmamat, keyin Hasan, keyin Husan ishga tushurishadi.
  • Ular dasturni avval \(1\) martadan , keyin  \(2\) martadan, keyingisida \(3\) martadan va hokazo martadan ketma-ket ishga tushurishadi. (Navbat tartibi saqlanadi).
  • Bu ishni ular dastur to'g'ri ishlayotganiga to'liq ishonch hosil qilguncha bajaraverishadi.

Sizning vazifangiz ushbu dasturni ulardan oldinroq tuzish.

Kiruvchi ma'lumotlar:

Har bir test uchun ? belgisi kiritiladi. 

Chiquvchi ma'lumotlar:

Har bir test uchun mos ismlarni chop eting.

Izoh:

.

Misollar:
# INPUT.TXT OUTPUT.TXT
1
?
Qulmamat
2
?
Hasan
3
?
Husan
4
?
Qulmamat
5
?
Qulmamat
6
?
Hasan
7
?
Hasan
8
?
Husan
9
?
Husan

F. Baxtingdan ko'r yoki "Qo'rqinchli" biletlar

Xotira: 16 MB, Vaqt: 1000 ms
Masala

Ingliz tili darsida sessiyasidan oldinroq professor- o'qituvchi imtihonni qay tartibda olishini tushuntirdi. Ushbu yo'nlishda 200 ta talaba  tahsil oladi. Shunga ko'ra imtihon  quyidagi shartlar asosida olinishi ma'lum bo'ldi:

  • Imtihonda 200 ta bilet mavjud.
  • Har bir biletda bittadan inglizcha so'z yozilgan.
  • \(i\)-biletni tortgan talaba \(i\) ga bo'linadigan sonlar bilan raqamlangan barcha biletlardagi so'zlarni qatnashtirib  \(5\) ta mazmunli gap tuzib berishi kerak.

Baho gaplarning mazmuniga qarab qo'yilishi ma'lum qilindi.
Bu o'ta ketgan adolatsizlik bo'lsada  qattiqqo'l o'qituvchiga hech kim gapirolmadi.
Siz imtihon topshirig'ingiz esa, har bir talaba bilet tortgandan keyin qaysi so'zlarni qatnashtirib gap tuzishi kerakligini aniqlash.

Kiruvchi ma'lumotlar:

\(i\)-biletdagi so'z, \(i\)-testda beriladi. 

Chiquvchi ma'lumotlar:

Mos ravishda \(i\)-testda  \(i\) -biletni tortgan talaba  tuzadigan gapida qatnashtirishi kerak bo'lgan so'zlarni bilet raqamining o'sib borish tartibida alohida satrlarda chop eting.

Misollar:
# INPUT.TXT OUTPUT.TXT
1
tomorrow
tomorrow
2
future
tomorrow
future
3
honey
tomorrow
honey
4
red
tomorrow
future
red
5
year
tomorrow
year
6
sea
tomorrow
future
honey
sea
Kitob yaratilingan sana: 15-Nov-24 03:02