A. Muhammad yaxshi bola
Xotira: 256 MB, Vaqt: 50 msMuhammad do'stining tug'ilgan kuni uchun sovg'a tayyorlamoqda. Uning a degan massivda n ta raqam bor va sovg'asi bu raqamlarning ko'paytmasi bo'ladi. Muhammad yaxshi bola bo'lgani uchun eng katta ko'paytmani hosil qilmoqchi va bu maqsadda u o'zining bitta raqamiga aynan 1 qo'shmoqchi.
Savol: Muhammad eng katta ko'paytmani qanday hosil qilishi mumkin?
Kirish
Birinchi qatorda bitta butun son t (1 ≤ t ≤ 10⁴) — test sinovlari soni beriladi.
Har bir test sinovi uchun:
- Birinchi qatorda bitta butun son n (1 ≤ n ≤ 9) — raqamlar soni beriladi.
- Ikkinchi qatorda n ta butun son aᵢ (0 ≤ aᵢ ≤ 9) — massivdagi raqamlar beriladi (bo'sh joy bilan ajratilgan).
Chiqish
Har bir test sinovi uchun aynan bitta raqamga 1 qo'shib Muhammad hosil qilishi mumkin bo'lgan eng katta ko'paytmani chop eting.
# | INPUT.TXT | OUTPUT.TXT |
---|---|---|
1 |
4 4 2 2 1 2 3 0 1 2 5 4 3 2 3 4 9 9 9 9 9 9 9 9 9 9 |
16 2 432 430467210 |
B. Ibodatning sevimli topshirig'i
Xotira: 256 MB, Vaqt: 50 msIbodat bir satrni yozish uchun avval ushbu satrda mavjud bo‘lgan barcha harflarni o‘rganishi kerak.
Ibodat s qatori ko‘rinishida ifodalangan xabarni yozmoqchi. U sizdan ushbu xabarni yozish uchun minimal alfavit hajmi qancha bo‘lishi kerakligini so‘raydi.
Hajmi x bo‘lgan alfavit (1≤x≤26) faqat birinchi x ta lotin harflarini o‘z ichiga oladi. Masalan, hajmi 4 bo‘lgan alfavit faqat a, b, c va d belgilaridan iborat.
Birinchi qatorda bitta butun son t (1≤t≤1000) — testlar soni keltiriladi.
Har bir testning birinchi qatorda bitta butun son n (1≤n≤100) — satr uzunligi keltiriladi.
Har bir testning ikkinchi qatorda uzunligi nnn ga teng bo‘lgan kichik lotin harflaridan iborat s satri keltiriladi.
Har bir test uchun bitta butun sonni chop eting — Ibodat xabarini yozishi uchun kerak bo‘lgan minimal alfavit hajmi.
Birinchi test holati uchun Atilla faqat a belgisini bilishi kerak, shuning uchun faqat a ni o‘z ichiga olgan hajmi 1 bo‘lgan alfavit yetarli.
Ikkinchi test holati uchun Atilla d, o, w, n belgilarini bilishi kerak. Ushbu belgilarni o‘z ichiga oladigan eng kichik alfavit hajmi 23 bo‘ladi (bunday alfavitni abcdefghijklmnopqrstuvw ko‘rinishida ifodalash mumkin).
# | INPUT.TXT | OUTPUT.TXT |
---|---|---|
1 |
5 1 a 4 down 10 codeforces 3 bcf 5 zzzzz |
1 23 19 6 26 |
C. Matrix #1
Xotira: 256 MB, Vaqt: 50 msn × n o‘lchamdagi a jadvali quyidagicha aniqlangan:
- Birinchi qator va birinchi ustun faqat birlardan iborat, ya'ni:
aᵢ,₁ = a₁,ᵢ = 1 barcha i = 1, 2, ..., n uchun. - Jadvaldagi qolgan barcha elementlar o‘zidan yuqoridagi va chapdagi sonlarning yig‘indisiga teng, ya'ni:
aᵢ,ⱼ = aᵢ₋₁,ⱼ + aᵢ,ⱼ₋₁.
Shu shartlar jadvaldagi barcha qiymatlarni aniqlaydi.
Sizga n soni berilgan. Ushbu jadvaldagi maksimal qiymatni aniqlashingiz kerak.
Yagona qator — musbat n sonini o‘z ichiga oladi (1 ≤ n ≤ 10) — jadvaldagi qatorlar va ustunlar soni.
Yagona qatorda — jadvaldagi maksimal qiymat bo‘lgan musbat m sonini chop eting.
2-testda ko'rinishi:
{1, 1, 1, 1, 1},
{1, 2, 3, 4, 5},
{1, 3, 6, 10, 15},
{1, 4, 10, 20, 35},
{1, 5, 15, 35, 70}.
# | INPUT.TXT | OUTPUT.TXT |
---|---|---|
1 |
1 |
1 |
2 |
5 |
70 |
D. Uchlik
Xotira: 256 MB, Vaqt: 50 msSizga n elementdan iborat massiv a berilgan. Har bir test holati uchun massivda kamida uch marta uchraydigan biror qiymatni chiqaring yoki agar bunday qiymat bo'lmasa, -1 ni chop eting.
- Birinchi qatorda t (1 ≤ t ≤ 10⁴) — test holatlar soni beriladi.
- Har bir test holati uchun ikki qator:
- Birinchi qatorda n (1 ≤ n ≤ 2⋅10⁵) — massiv uzunligi.
- Ikkinchi qatorda massiv elementlari a1, a2, …, an (1 ≤ ai ≤ n) beriladi.
Umumiy holda, barcha test holatlari uchun n ning yig'indisi 2⋅10⁵ dan oshmaydi.
Har bir test holati uchun:
- Agar massivda kamida uch marta uchraydigan element bo'lsa, shu elementdan birinchisini chop eting.
- Aks holda, -1 chop eting.
# | INPUT.TXT | OUTPUT.TXT |
---|---|---|
1 |
7 1 1 3 2 2 2 7 2 2 3 3 4 2 2 8 1 4 3 4 3 2 4 1 9 1 1 1 2 2 2 3 3 3 5 1 5 2 4 3 4 4 4 4 4 |
-1 2 2 4 1 -1 4 |
E. Yangi yil sovg'asini tuzatish
Xotira: 256 MB, Vaqt: 1000 msSizda n ta sovg'a bor va siz ushbu sovg'alarni bolalarga berishni xohlaysiz. Albatta, hech kimni ranjitishni xohlamaysiz, shuning uchun barcha sovg'alar bir xil bo'lishi kerak. i-sovg'a ai dona konfet va bi dona apelsindan iborat.
Bitta yurishda siz quyidagilardan birini tanlashingiz mumkin (1 ≤ i ≤ n):
- ai ni 1 ga kamaytirish (ya'ni, i-sovg'adan 1 dona konfet yeyish).
- bi ni 1 ga kamaytirish (ya'ni, i-sovg'adan 1 dona apelsin yeyish).
- ai va bi ni bir vaqtning o'zida 1 ga kamaytirish (ya'ni, i-sovg'adan 1 dona konfet va 1 dona apelsin yeyish).
Shuni ta'kidlash kerakki, siz konfet yoki apelsinni ularning miqdori 0 bo'lgan holatda yeyolmaysiz (ai va bi 0 dan kichik bo'lmasligi kerak).
Yuqorida aytib o'tilganidek, barcha sovg'alar bir xil bo'lishi kerak. Bu degani, quyidagi ikkita shart bajarilishi kerak:
- a1 = a2 = ⋯ = an
- b1 = b2 = ⋯ = bn
(ai va bi ning teng bo'lishi majburiy emas).
Sizning vazifangiz — barcha sovg'alarni tenglashtirish uchun zarur bo'lgan minimal yurishlar sonini topishdir.
Dastlabki qatorda bitta butun son t (1 ≤ t ≤ 1000) — testlar to'plami soni beriladi. Keyin esa t ta testlar to'plami keltiriladi:
- Har bir test uchun birinchi qatorda bitta butun son n (1 ≤ n ≤ 50) — sovg'alar soni.
- Ikkinchi qatorda n ta butun son a1, a2, ..., an (1 ≤ ai ≤ 10⁹) — har bir sovg'adagi konfetlar soni.
- Uchinchi qatorda n ta butun son b1, b2, ..., bn (1 ≤ bi ≤ 10⁹) — har bir sovg'adagi apelsinlar soni.
Har bir test uchun bitta butun son chiqaring: sovg'alarni tenglashtirish uchun zarur bo'lgan minimal yurishlar soni.
Birinchi test to'plamida biz quyidagi yurishlar ketma-ketligini bajarishimiz mumkin:
- Birinchi sovg'ani tanlab, undan bitta apelsin yeyish, shunda a = [3, 5, 6] va b = [2, 2, 3] bo'ladi.
- Ikkinchi sovg'ani tanlab, undan bitta konfet yeyish, shunda a = [3, 4, 6] va b = [2, 2, 3] bo'ladi.
- Ikkinchi sovg'ani yana bir marta tanlab, undan bitta konfet yeyish, shunda a = [3, 3, 6] va b = [2, 2, 3] bo'ladi.
- Uchinchi sovg'ani tanlab, undan bitta konfet va bitta apelsin yeyish, shunda a = [3, 3, 5] va b = [2, 2, 2] bo'ladi.
- Uchinchi sovg'ani yana bir marta tanlab, undan bitta konfet yeyish, shunda a = [3, 3, 4] va b = [2, 2, 2] bo'ladi.
- Uchinchi sovg'ani yana bir marta tanlab, undan bitta konfet yeyish, shunda a = [3, 3, 3] va b = [2, 2, 2] bo'ladi.
# | INPUT.TXT | OUTPUT.TXT |
---|---|---|
1 |
5 3 3 5 6 3 2 3 5 1 2 3 4 5 5 4 3 2 1 3 1 1 1 2 2 2 6 1 1000000000 1000000000 1000000000 1000000000 1000000000 1 1 1 1 1 1 3 10 12 8 7 5 4 |
6 16 0 4999999995 7 |
F. Konfetlar
Xotira: 256 MB, Vaqt: 2000 msAlisa va Bob ota-onalaridan n ta konfet sovg'a olishdi. Har bir konfetning og'irligi faqat 1 gramm yoki 2 gramm bo'lishi mumkin. Endi ular barcha konfetlarni o'zaro halol taqsimlashni xohlashadi, shunda Alisaning konfetlarining umumiy og'irligi Bobning konfetlarining umumiy og'irligiga teng bo'ladi.
Sizdan so'raladi: ular buni amalga oshira olishadimi?
Muhim: konfetlarni bo'laklarga bo'lish taqiqlangan.
Birinchi qatorda bitta butun son t (1 ≤ t ≤ 10⁴) — testlar to'plami soni berilgan.
Keyingi qatorlarda har bir test uchun quyidagilar beriladi:
- Birinchi qatorda bitta butun son n (1 ≤ n ≤ 100) — Alisa va Bob olgan konfetlar soni.
- Keyingi qatorda n ta butun son a1, a2, ..., an — konfetlar og'irligi. Har bir og'irlik faqat 1 yoki 2 ga teng.
Garantiya: barcha testlar bo'yicha n lar yig'indisi 10⁵ dan oshmaydi.
Har bir test uchun alohida qatorda quyidagilarni chiqaring:
- Agar barcha konfetlarni teng og'irlikka ega ikkita to'plamga bo'lish mumkin bo'lsa, "YES" deb yozing.
- Aks holda, "NO" deb yozing.
Birinchi kirish to'plamida Alisa va Bob har biri o'ziga bitta konfet olishlari mumkin, shunda ikkala tomonning og'irligi 1 bo'ladi.
Ikkinchi kirish to'plamida har qanday bo'linish adolatsiz bo'ladi.
Uchinchi kirish to'plamida Alisa va Bob har biri o'ziga bitta 1 gramm va bitta 2 gramm konfet olishlari mumkin, shunda ikkala tomonning og'irligi teng bo'ladi.
To'rtinchi kirish to'plamida uchta bir xil konfetni ikki kishi o'rtasida teng bo'lishning imkoni yo'q.
Beshinchi kirish to'plamida har qanday bo'linish ham adolatsiz bo'ladi.
# | INPUT.TXT | OUTPUT.TXT |
---|---|---|
1 |
5 2 1 1 2 1 2 4 1 2 1 2 3 2 2 2 3 2 1 2 |
YES NO YES NO NO |
G. Musobaqa
Xotira: 256 MB, Vaqt: 1000 msYarim ochiq g'ildirakli Formula-A avtomobil poygalari bo'yicha jahon chempionati navbatdagi bosqichidan so'ng, poygachilar natijalarni muhokama qilish uchun bir kafega yig'ilishdi. Ular yoshligida katta avtomobillarda emas, balki kichikroq o‘lchamdagi kartlarda musobaqalashganlarini eslashdi.
Do‘stlar kart poygasining birida g‘olibni aniqlashga qaror qilishdi. Poyganing g‘olibi deb trassadagi barcha aylanishlarni eng kam vaqt ichida bosib o‘tgan poygachi hisoblanadi.
Natijalar yozuvlari saqlanmaganligi sababli, har bir n nafar poygachi o‘sha poygada trassaning m ta aylanishidagi natijalarini yoddan chiqib, qayd qilib berdi. Ammo ushbu ma’lumotlar asosida poygachilar g‘olibni topish qiyin deb topishdi. Shu sababli ular bu vazifani sizdan so‘rashdi.
Sizdan ushbu kart poygasining g‘olibini aniqlaydigan dastur yozish talab etiladi.
INPUT.TXT faylining birinchi qatorida ikkita butun son berilgan: n va m (1 ≤ n, m ≤ 100). Keyingi 2∙n qatorda har bir poygachining trassani bosib o‘tish natijalari tasvirlangan. Poygachining trassani bosib o‘tishi quyidagicha tasvirlanadi:
- Birinchi qator – poygachining ismi (faqat kichik va katta lotin harflari ishlatiladi). Barcha ismlar turlicha, katta va kichik harflar ajralib turadi.
- Ikkinchi qator – m ta ijobiy butun son (har bir son – ushbu poygachi tomonidan har bir aylanish uchun ketgan vaqt). Bu sonlarning har biri 1000 dan oshmaydi.
Har bir ismlar qatorining uzunligi 255 belgidan oshmaydi.
OUTPUT.TXT fayliga kart poygasining g‘olibi bo‘lgan poygachining ismini yozish kerak. Agar g‘oliblar bir nechta bo‘lsa, ulardan birinchisining ismini chiqarish kifoya.
# | INPUT.TXT | OUTPUT.TXT |
---|---|---|
1 |
5 3 Jumanazar 2 1 1 Barikelo 2 1 2 Fatima 1 2 1 Mirshod 1 1 1 Fedya 1 1 1 |
Mirshod |
H. String #3
Xotira: 256 MB, Vaqt: 1000 msKuzimirda s
qatori bor, u faqat lotin harflaridan 'A', 'B' va 'C' iborat. Har bir yurishda u quyidagi ikki amaldan birini bajarishi mumkin:
- Bir dona 'A' harfini va bir dona 'B' harfini olib tashlash (bu harflar qatorning istalgan joyida, yonma-yon bo'lmasa ham bo'ladi);
- Bir dona 'B' harfini va bir dona 'C' harfini olib tashlash (bu harflar qatorning istalgan joyida, yonma-yon bo'lmasa ham bo'ladi).
Shunday qilib, har bir yurishda qator uzunligi aynan 2 ta harfga kamayadi. Amallar bir-biriga bog'liq emas, va har bir yurishda Kazimir yuqoridagi ikki variantdan birini tanlashi mumkin.
Masalan, agar s
= "ABCABC" bo'lsa, u bir yurishda s
ni "ACBC" ko'rinishiga keltirishi mumkin (birinchi 'B'ni va ikkinchi 'A'ni olib tashlash orqali). Bu faqat mumkin bo'lgan bir natija, boshqa ko'plab imkoniyatlar mavjud.
Masala:
Sizga berilgan qator s
ni bo'sh qatorga aylantirish uchun amallar ketma-ketligini bajarish mumkinmi? Ya'ni, barcha harflarni olib tashlash mumkinmi?
- Birinchi qatorda butun son
t
(1 ≤ t ≤ 1000) — testlar soni. - Keyingi
t
qatorning har biri qatoris
ni ifodalaydi. Har bir qator faqat 'A', 'B' va 'C' harflaridan iborat va uzunligi 1 ≤ |s| ≤ 50.
Har bir test uchun javobni alohida qator sifatida chiqaring:
- Agar qatorni bo'sh qatorga aylantirish mumkin bo'lsa, YES chiqaring.
- Aks holda, NO chiqaring.
# | INPUT.TXT | OUTPUT.TXT |
---|---|---|
1 |
6 ABACAB ABBA AC ABC CABCBB BCBCBCBCBCBCBCBC |
NO YES NO NO YES YES |