A. Satrchalar
Xotira: 128 MB, Vaqt: 1000 msDilshod "qog'oz kesish" ni yaxshi ko'radi: u gazeta sarlavhasidan belgilarni kesib tashlaydi va ulardan boshqa satr hosil qilish uchun qayda joylashtirib chiqadi.
Unda \(n\) ta \(S_1, S_2 \dots S_n\) gazeta sarvlahalari bor va u ulardan bittasini tanlab yangi satr yaratmoqchi. U hali qaysi sarvlahani tanlashini bilmaydi, shuning uchun sarlvaha tanlashidan qat'iy nazar, aniq yasay oladigan eng uzun so'zini topmoqchi.
Bunda siz unga yordam bering.
Birinchi qatorda bitta butun son - \(n(1 \leq n \leq 50)\) sarvlahalar soni kiritiladi.
Keyingi \(n\) ta qatorda \(S_i(1 \leq |S_i| \leq 1000)\) sarvlaha satrlari kiritiladi.
Dilshodning shartlariga mos keluvchi satrni toping.
Agar bunday so'zlar bir nechta bo'lsa, leksigrafik eng kichigini chiqaring. Agar bunday satr mavjud bo'lmasa, \(-1\) chiqaring.
# | INPUT.TXT | OUTPUT.TXT |
---|---|---|
1 |
3 abcca ca cccca |
ac |
2 |
2 bcde fghij |
-1 |
B. TTMT
Xotira: 128 MB, Vaqt: 1000 msKomiljon hozirgina uzunligi \(n\) ga teng va faqatgina ‘T’ va ‘M’ harflaridan tuzilgan \(s\) satrini topib oldi. Komiljon \(TTMT\) satrini yaxshi satr deb hisoblagani sababli, \(s\) dagi yaxshi satrlar sonini maksimallashtirmoqchi. Satrdagi \(TTMT\) satrlarning soni \(s_is_{i+1}s_{i+2}s_{i+3} = TTMT\) shartini qanoatlantirgan \(i\) larning soniga tengdir.
Komiljon bitta amalda \(s\) satrining istalgan joyiga ‘T’ yoki ‘M’ satrlardan birini joylashtirishi mumkin. Bu amalni birinchi marta bajarish uchun badal olinmaydi, ammo ikkinchi marta bajarish uchun 1 tanga, uchinchi marta bajarish uchun 2 tanga va h.k. davom etadi.
Komiljonning umumiy kayfiyati,
(natijaviy satrdagi \(TTMT\) lar soni) \(-\) (jami to'lagan tangalari soni)
ga teng. Sizga boshlang'ich \(s\) satrli ma'lum, uning kayfiyatining maksimal qiymatini toping.
Birinchi qatorda bitta butun son - \(T\) testlar soni kiritiladi.
Keyingi qatordan boshlab har bir test uchun, birinchi qatorda bitta butun son \(n(1 \leq n \leq 2 * 10^5)\) \(s\) satr uzunligi kiritiladi.
Ikkinchi qatorda esa \(s\) satrining o'zi kiritiladi.
Har bir test uchun alohida qatoda Komiljon erishishi mumkin bo'lgan maksimal kayfiyatni chiqaring.
# | INPUT.TXT | OUTPUT.TXT |
---|---|---|
1 |
4 3 TTT 5 TTTTM 4 TMTM 9 TTMTTTTMT |
1 1 1 3 |
C. RPG
Xotira: 128 MB, Vaqt: 2000 msKomiljon hozirda RPG turidagi kompyuter o'yinini o'ynamoqda. Hozirda uning vazifasi joni \(H\) birlikka teng maxluqni zarb etishdir. Maxluqning joni 0 yoki undan kamroq bo'lsa, u zarb etiladi.
Buning uchun u o'zida bor \(n\) ta \(1,2,\dots n\) bilan raqamlangan qurollaridan foydalana oladi. Biroq har bir qurol ko'pi bilan 1 marta ishlatilishi mumkin, bundan tashqari qaysidir qurolni ishlatganidan so'ng, Komiljon biroz vaqt ichida umuman hech qaysi qurollardan foydalana olmaydi.
Aytaylik Komiljon \(i\)-qurolini o'yin boshlanganidan \(x\) soniya o'tgach ishlatsin. Komiljonning ushbu qurolini ishga tushirganidan so'ng \(t_i\) soniya dam olishi kerak. Bu degani Komiljon \((x + t_i)\)-soniyagacha hech qaysi qurollardan foydalana olmaydi. Bundan tashqari qurol o'zining aktiv turish vaqti \(len_i\) ega. Yanada aniqroq aytsak, qurol ishga tushilrilganidan \((1 \leq j < len_i)\) soniya o'tkach, ya'ni o'yinning \((x + j)\)-soniyasida, maxluqning joni \(d_{i, j}\) miqdorga kamayadi. E'tibor bering, \(len_i\) soni \(t_i\) dan kattaroq bo'lishi mumkin. Ya'ni qurol ishga tushirilganch juda uzoq vaqt ishlab turilishi mumkin va uning effekti(aktiv turishi) boshqa qurollarniki bilan ustma ust bir vaqtda ishlatilishi mumkin.
O'yin 0-soniyada boshlanadi. Qurollarni to'g'ri ketma ketlikda ishlatgan holda, maxluqni eng minimal nechanchi soniya ichida zabt etib bo'lishini toping. Agar barcha qurollarini ishlatib bo'lgandan so'ng ham maxluq zabt etilmasa, ekranga \(-1\) chiqaring.
Kirish oqimining birinchi qatorida bitta butun son - \(T\) testlar soni kiritiladi.
Har bir test uchun alohida qatordan boshlab:
Birinchi qatorda ikkita butun son \(n(1 \leq n \leq 18)\) va \(H(1 \leq H \leq 10^{18})\) kiritiladi. Keyingi qatordan boshlab qurollarning xarakteristikasi beriladi.
Har bir qurol uchun 2 ta qatorda quyidagilar kiritiladi.
Birinchi qatorda ikkita butun son \(t_i\) va \(len_i(1 \leq t_i, len_i \leq 100 000)\). Ikkinchi qatorda \(len_i\) ta butun son, \(d_{i,0},d_{i,1}, \dots ,d_{i,len_i-1} (1 \leq d_{i,j} \leq 10^9)\) sonlari kiritiladi.
\(n > 10\) lik testlar soni 5 tadan oshmasligi hamda barcha testlardagi \(len_i\) lar yig'indisi \(3000000\) dan oshmasligi kafolatlanadi.
Har bir test uchun alohida qatoda, maxluqni zabt etiladigan minimal vaqtni chiqaring. Agar maxluqni zabt etishning iloji bo'lmasa, -1 chiqaring.
1-testda Komiljonning bitta quroli mavjud. Maxluqning joni esa 100.
0-soniyada Komiljon qurolini ishlatadi.
0-soniyada qurol \(d_{1,0} = 50\) miqdorga maxluqning jonini kamaytiradi
1-soniyada qurol \(d_{1,1} = 60\) miqdorga maxluqning jonini kamaytiradi. Shu bilan maxluq zarb etiladi. Shuning uchun ham javob 1.
Agar maxluqning joni ko'proq bo'lganida!
2-soniyada qurol \(d_{1,2} = 70\) miqdorga maxluqning jonini kamaytirardi.
Agar Komiljonning boshqa qurollari bo'lganida!
Komiljonning 5-soniyagacha dam olishi kerak bo'lardi va 5-soniyadan boshlab boshqa qurolini ishlata olardi.
# | INPUT.TXT | OUTPUT.TXT |
---|---|---|
1 |
3 1 100 5 3 50 60 70 2 100 2 3 40 40 100 100 2 20 5 1 1000 1 1 999 |
1 2 -1 |
D. Super Struktura
Xotira: 256 MB, Vaqt: 2500 msUzunligi \(n\) ga teng \(a\) massivi berilgan. Sizning vazifangiz jami \(q\) ta 4 xil turdagi so'rovlarga javob berish.
- \(1 \ x \ y \ z\) so'rovi kiritilganda, har bir \(1 \leq i \leq n\) soni uchun, agar \(x \leq a_i \leq y\) sharti bajarisa, \(a_i \leftarrow z\) amalini bajaring. (\(\leftarrow\) amali o'zlashtirishni anglatadi).
- \(2 \ l \ r \ c\) so'rovi kiritilganda, har bir \(l \leq i \leq r\) uchun \(a_i \leftarrow c\) amalini bajaring.
- \(3 \ p\) so'rovi kiritilganda, \(a_p\) ni ekranga chiqaring.
- \(4 \ p\) so'rovi kiritilganda, \(1 \leq i \leq n\) va \(a_i > a_p\) shartini qanoatlantiruvchi \(i\) lar sonini chiqaring.
Birinchi qatorda ikkita butun son \(n, q(1 \leq n, q \leq 200000)\) kiritiladi.
Ikkinchi qatorda \( n\) ta butun son - \(a\) massiv elementlari kiritiladi. Bunda \(1 \leq a_i \leq 10^9\).
Keyingi \(q\) ta qatorining har biri navbatdagi so'rovni anglatadi.
So'rovlar shartda ko'rsatilgani kabi kiritiladi. Quyidagi shartlar doim qanoatlangan:
\(1 \leq x \leq y \leq 10^9, \ 1 \leq z \leq 10^9\)
\(1 \leq l \leq r \leq n, \ 1 \leq c \leq 10^9\)
\(1 \leq p \leq n\)
3- yoki 4- turdagi so'rovlarning har biri uchun yangi qatorlarda, so'rovlarning natijasini chiqaring.
# | INPUT.TXT | OUTPUT.TXT |
---|---|---|
1 |
5 8 1 2 3 2 1 4 5 1 1 1 4 4 3 2 1 2 1 4 4 2 2 3 7 4 1 3 4 |
3 2 2 4 2 |
E. Red-Blue Tree
Xotira: 128 MB, Vaqt: 1000 msDilshod va Qodir o'yin o'ynashmoqchi. Bu safar ularda \(n\) ta tugundan iborat bog'langan siklsiz graf, ya'ni daraxt bor. Daraxtning ba'zi tugunlari qizil, qolganlari esa ko'k rangga bo'yalgan.
No'malum usul orqali, o'yinni boshlash uchun boshlang'ich tugun tanlanadi va u yerga o'yin fishka qo'yiladi. Bundan so'ng o'yinchilar navbatma navbat quyidagi amallarni bajaradi:
- O'yinchi hozirda fishka turgan tugunga ulangan hamda oldin bloklanmagan qirra tanlaydi. Agar qirrani tanlashning imkoni bo'lmasa, o'yin o'z yakuniga yetadi;
- O'yinchi qirradan foydalanib, fishkani qo'shni tugunga olib qo'yishni yoki fishkani joyida qoldirishni tanlaydi;
- Tanlangan qirra bloklanadi. E'tibor bering bloklangan qirralardan boshqa foydalanish mumkin emas.
O'yin yakunida, Fishka qizil rangli tugunda qolsa, Dilshod yutadi, ko'k rangli tugunda qolsa, Qodir yutadi. O'yin doimo Dilshodning navbati bilan boshlanadi. Ikkala o'yinchi ham optimal o'ynaydi.
Hozirda Dilshod o'yin qaysi tugunlardan boshlansa, u g'olib bo'lishini bilmoqchi. Buni hisoblash uchun unga yordam bering.
Birincha qatorda bitta butun son - \(n(1 \leq n \leq 10 ^ 5)\), daraxtdagi tugunlar soni kiritiladi.
Ikkinchi qatorda \(n\) ta butun sondan iborat, 1 va 2 sonlaridan massiv kiritiladi. Massivning \(i\)-elementi 1 bo'lsa, \(i\)-tugun ko'k rangga, aks olda \(i\)-tugun qizil rangga bo'yalganligi anglatiladi.
Keyingi \(n-1\) ta qatorning har birida qirralarni ifodalovchi \(u\) va \(v\) sonlari kiritiladi.
Birinchi qatorda bitta butun son, agar o'yin shu tugundan boshlansa, Dilshod yutadigan tugunlar sonini chiqaring. Bu son \(k\) bo'lsin.
Ikkinchi qatorda \(k\) ta butun son, shu tugunlarning raqamlarini chiqaring. Tugunlarni o'sish tartibida chiqarishingiz lozim.
# | INPUT.TXT | OUTPUT.TXT |
---|---|---|
1 |
4 2 2 1 2 1 3 4 2 2 1 |
4 1 2 3 4 |
2 |
7 2 2 1 1 1 1 1 3 1 7 4 3 5 7 5 3 2 5 6 |
4 1 2 3 5 |
3 |
5 1 1 1 1 1 1 3 2 3 1 4 5 2 |
0 |
F. Sandwich
Xotira: 128 MB, Vaqt: 1000 msKomiljon Sandwich yeyishni yoqtiradi, va bugun u \(N\) ta sandwich ta'tib ko'rmoqchi.
Komiljon Sandwich xarid qilayotgan do'konda chegirma davom etmoqda. Bir dona Sandwichning narxi \(30000\) so'm, lekin bir kishi tomonidan sotib olinadigan har sakkizinchi(8, 16, 24, 32, 40…) Sandwich, bor yo'g'i \(8000\) so'mga sotiladi.
Komiljon \(N\) ta sandwichning hammasini sotib olishi uchun, o'zi bilan kamida necha pul olib chiqish kerak.
Birinchi qatorda bitta butun son - \(n(1 \leq n \leq 250)\) kiritiladi.
Yagona qatorda bitta butun son, Komiljon o'zi bilan olib chiqishi kerak bo'lgan minimal pul miqdorini chiqaring.
# | INPUT.TXT | OUTPUT.TXT |
---|---|---|
1 |
3 |
90000 |
2 |
9 |
248000 |
3 |
28 |
774000 |
G. Musobaqa
Xotira: 128 MB, Vaqt: 1000 msAnvar navbatdagi dasturlash musobaqasida qatnashmoqda. Musobaqada ishtirokchilarga \(K\)ta masala berilgan. Anvar ulardan \(X\)tasini ishladi va jami \(Y\) daqiqa jarima oldi.
Buni qarangki, afsungar Moldevort unga yordam bera olishini aytdi. Moldevortda \(N\)ta masala afsuni hamda \(M\)ta jarima afsuni mavjud. \(i\)-masala afsuni \(A[i]\) tanga turadi va Anvarning ishlagan masalalari sonini bittaga orttirib qo'yadi (ortiqcha jarimasiz). \(j\)-jarima afsuni esa \(B[j]\) tanga turadi va Anvarning umumiy jarimasi miqdorini bittaga kamaytirib qo'yadi.
Anvarda jami \(C\) tanga bor. Anvar tangalarini optimal usulda ishlatsa, uning eng yaxshi natijasini (masala va jarima miqdorini) chiqaring.
E'tibor bering, ishtirokchilar orasida shubha uyg'onmasligi uchun, Anvar ishlagan masalalari soni \(K\)dan oshmasligi, uning jarimasi esa \(0\)dan kam bo'lmasligi kerak.
*Yakuniy natijalarda avval eng ko'p masala ishlaganlar, teng bo'lib qolgan taqdirda eng kam jarimaga ega ishtirokchilar bo'yicha aniqlanadi.
Birinchi qatorda sizga \(K\), \(X\), \(Y\) va \(C\) butun sonlari beriladi.
Ikkingchi qatorda \(N\) va \(M\) butun sonlari beriladi.
Uchinchi qatorda \(N\)ta butun son, \(A[1], A[2], ..., A[N]\) beriladi.
So'nggi qatorda \(M\)ta butun son, \(B[1], B[2], ..., B[M]\) beriladi.
Chegaralar:
- \(1 \le K \le 2 \cdot 10^5\)
- \(0 \le X \le K\)
- \(0 \le Y \le 10^9\)
- \(0 \le C \le 10^{9}\)
- \(1 \le N \le 2 \cdot 10^5\)
- \(1 \le M \le 2 \cdot 10^5\)
- \(1 \le A[i] \le 10^9\)
- \(1 \le B[j] \le 10^9\)
Yagona qatorda Anvarning ishlagan masalalari soni va jarimasini chiqaring!
Birinchi misolda Anvar uchinchi masala afsunini \(A[3] = 6\) tangaga, ikkinchi va uchinchi jarima afsunlarini \(B[2]+B[3]=2+1=3\) tangaga sotib olishi mumkin. Anvarning ishlagan masalalari soni bittaga ortadi va jarimasi ikkitaga kamayadi.
Ikkinchi misolda \(C=0\), demak hech qanday afsun sotib olib bo'lmaydi.
# | INPUT.TXT | OUTPUT.TXT |
---|---|---|
1 |
6 4 65 9 3 4 8 5 6 6 2 1 8 |
5 63 |
2 |
3 2 21 0 1 2 1 1 1 |
2 21 |
H. O'suvchi qism ketma-ketlik
Xotira: 256 MB, Vaqt: 2000 msAhmadjonda uzunligi \(n\) bo'lgan \(p\) permutatsiya* bor. U \(1 \leq i_1 \leq i_2 \leq \dots i_k \leq n\) ketma-ketlikni sekin o'suvchi deydi, agarda har bir \(1 \leq j < k\) uchun \(p_{i_j} + 1 = p_{i_{j+1}}\) sharti bajarilsa.
Boshqa so'z bilan aytgancha, \(p_{i_1},p_{i_2},\dots p_{i_k}\) ketma-ketlik, \(x, x + 1, \dots x + k-1\) shaklidagi ketma ket sonlardan tashkil topsin.
Qodirjon Ahmadjonga \(q\) ta \((l, r)\) turdagi so'rovlarni beradi. Har so'rovga Ahmadjon \(p\) massivining \([l, r]\) oralig'idagi eng uzun sekin o'suvchi ketma-ketlikning uzunligini aytishi lozim. Ahmadjonga yordam bering.
*Permutatsiya bu 1 dan \(n\) gacha sonlarning har biri 1 martadan qatnashgan massivdir.
Birinchi qatorda ikkita butun son - \(n, q(1 \leq n, q \leq 2*10^5)\) sonlari kiritiladi.
Ikkinchi qatorda \(n\) ta butun son - \(p\) permutatsiya elementlari kiritiladi.
Uchunchi qatordan boshlab har so'rov uchun yangi qatorda \(l,r(1 \leq l \leq r \leq n)\) sonlari kiritiladi.
Har bir so'rov uchun alohida qatorda, \([l, r]\) oraliqdagi eng uzun sekin o'suvchi ketma-ketlikning uzunligini toping.
# | INPUT.TXT | OUTPUT.TXT |
---|---|---|
1 |
7 3 1 5 2 6 4 7 3 1 3 1 6 3 7 |
2 3 2 |