A. Plyus * Plyus

Xotira: 16 MB, Vaqt: 1000 ms
Masala

Sizga \(N \times M\) o’lchamli jadval berilgan, har bir elementi yaxshi (good - G) yoki yomon (bad - B) ni ifodalaydi.

To’g’ri Plyus deb gorizontal va vertikal uzunliklari teng, bu uzunlik toq, chiziqlar o’zaro teng markazdan kesishganiga aytiladi. Plyusning yuzasi u egallab turgan yacheykalar soniga teng. Quyidagi diagrammada yashil maydonlar Plyus hisoblanadi, sariq maydonlar esa Plyus hisoblanmaydi.

Sizga berilgan jadvaldan tomonlari faqat yaxshi elementlardan iborat bo’ladigan shunday ikkita Plyusni ajratib olingki, ajratilgan Plyuslar jadvalda umumiy nuqtaga ega bo’lmasin va ikkila Plyusning yuzalari ko’paytmasi maksimal bo’lsin.

Kiruvchi ma'lumotlar:

Dastlabki satrda ikkita butun son, \(N\) va \(M(2 \le N, M \le 15)\) sonlari, jadvalning qatorlar va ustunlar soni kiritiladi. Keyingi qatordan boshlab \(N\) ta qatorning har birida \(M\) tadan belgi, jadvalning elementlari kiritiladi.

Chiquvchi ma'lumotlar:

Umumiy koordinataga ega bo’lmagan holda ajratib olingan ikkita Plyusning yuzalari ko’paytmasi maksimal necha bo’lishini chop eting.

Izoh:

Quyidagi rasmning chap tomonidagi jadvalda 1-test, o’ng tomondagi jadvalda 2-test bo’yicha ikkita Plyus qanday ajratib olinganligini ko’rishingiz mumkin:

Misollar:
# INPUT.TXT OUTPUT.TXT
1
5 6
GGGGGG
GBBBGB
GGGGGG
GGBBGB
GGGGGG
5
2
6 6
BGBBGB
GGGGGG
BGBBGB
GGGGGG
BGBBGB
BGBBGB
25

B. Matritsa

Xotira: 128 MB, Vaqt: 1000 ms
Masala

Sizda N ta qator va M ta ustundan iborat matritsa berilgan. Siz matritsa ustida o’yin o’ynayapsiz. O’yin shartlari quyidagicha:

  • Siz o’yinni matritsaning 1-satrining ixtiyoriy elementidan boshlashingiz mumkin.
  • Siz o’yin mobaynida qadam qo’ygan yacheykangizdagi qiymat sizning umumiy balingizga qo’shiladi va shundan so’ng bu yacheykadagi qiymat 0 ga almashiladi.
  • Siz o’yin mobaynida har bir harakatda chapga, o’ngga va pastga bir yacheyka birligida harakatlana olasiz
  • Siz o’yinni matritsaning oxirgi qatorining ixtiyoriy yacheykasida yakunlashingiz mumkin
Kiruvchi ma'lumotlar:

INPUT.TXT kirish faylining dastlabki satrida ikkita butun son, N va M(1 ≤ N*M ≤ 4*106). Keyingi N ta satrning har birida M tadan [-250, 250] oralig’idagi butun son, matritsa elementlari kiritiladi.

Chiquvchi ma'lumotlar:

OUTPUT.TXT chiqish faylida bitta butun son, siz yig’ishingiz mumkin bo’lgan maksimal qiymatni chop eting

Izoh:

Misollar:
# INPUT.TXT OUTPUT.TXT
1
4 5
1 2 3 -1 -2
-5 -8 -1 2 -150
1 2 3 -250 100
1 1 1 1 20
37

C. Shimoliy city

Xotira: 256 MB, Vaqt: 4000 ms
Masala

Quruvchi elflar va nihoyat Shimoliy citydagi barcha binolarni qurib bitkazishdi, endigi vazifa esa bu binolarni yo'llar orqali bog'lab chiqish. Qiyin tarafi esa yo'llarni Yangi yil bayramigacha bitkazish kerak, chunki Shimoliy qutbda asosiy bayramlarni yangi Shimoliy cityda o'tkazish rejalashtirilgan. Yo'llarni iloji boricha tez bitirish uchun esa hamma binolarni birlashtiruvchi eng qisqa yo'lni topish kerak.

Kiruvchi ma'lumotlar:

Sizga \(N\) natural soni va keyingi \(N\) ta qatorda \(X_i\)\(Y_i\) sonlari beriladi. \(X_i\)\(Y_i\) bu i-binoning joylashgan koordinatalari. Binolar 1 dan N gacha raqamlangan.
\(1\leq N \leq 1000;\)     \(-10^9 \leq X_i, Y_i \leq 10^9, \space i=\{1...N\}.\)

Chiquvchi ma'lumotlar:

Quruvchi elflarga eng qisqa yo'l uchun qaysi binolar o'rtasida yo'llar qurish kerakligini yozib bering. O'rtasida yo'l qurilishi kerak bo'lgan bino juftliklari sonini va keyingi qatorlarda juftliklarni probel bilan ajratgan holda alohida qatorlarda chop eting.
Agar bir necha xil javob mavjud bo'lsa, istalganini chop eting.

Izoh:

Siz bergan javob va muallif javobidagi yo'l uzunliklari farqi \(10^{-6}\) dan katta bo'lganda javobingiz noto'g'ri deb hisoblanadi.

Misollar:
# INPUT.TXT OUTPUT.TXT
1
5  
0 0
0 4
4 0
2 2
4 4
4
1 4
2 4
3 4
4 5
2
9
-10 5
-3 6
8 6
-4 1
4 2
0 0
-5 -8
2 -8
7 -9
8
4 6
5 6
2 4
8 9
3 5
7 8
1 2
6 8

D. Baliq ovi

Xotira: 16 MB, Vaqt: 1000 ms
Masala

Kunlardan bir kun N(1 < N < 60) ta baliqchi baliq oviga borishdi, u yerda X ta baliq ovlashdi. Shundan so'ng, baliqchilar yotishga ketishdi. Ertalab birin – ketin uyg’onishganda uyg’ongan baliqchi o’zi birinchi bo’lib men uyg’ondim deb o’ylab to’plangan baliqlarni teng N qismga ajratdi, bunda har gal aynan K(0 < K < N) tadan baliq ortib qoldi, baliqchilar o’rtasida nizo chiqmasligi maqsadida ortib qolgan K ta baliqni qaytadan dengizga uloqtirdi, shundan so’ng o’zining ulushini oldida qolgan baliqlarni qaytadan bir joyga jamlab o’zi uyiga ravona bo’ldi(Har bir baliqchi kamida 1 tadan baliq olgan).

Sizning vazifangiz, berilgan N va K uchun, minimal mumkin bo'lgan musbat X qiymatni - masalaning shartini qondiradigan baliq sonini aniqlashdir.

Kiruvchi ma'lumotlar:

INPUT.TXT kirish faylining yagona satrida ikkita butun son, N va K sonlari kiritiladi.

Chiquvchi ma'lumotlar:

OUTPUT.TXT chiqish faylining yagona satrida bitta butun son, X ning mumkin bo’lgan eng minimal qiymatini chop eting.

Misollar:
# INPUT.TXT OUTPUT.TXT
1
3 1
25
2
4 3
247

E. N – tub son

Xotira: 32 MB, Vaqt: 1000 ms
Masala

Bugungi kontestimizga juda ham ko`p odam qatnashdi, ularni har birini alohida nomerlab chiqdik ya’ni birinchi odam 2, ikkinchi odam 3 va hokazo shunday tartibda \(5, 7, 11, 13, \space\dots\) xullas ketma – ketlikni tushundingiz.
Sizning vazifangiz \(N\) – odamni nomerini topish.

Kiruvchi ma'lumotlar:

Yagona qatorda \(N (0 < N \le 10^9)\) butun soni beriladi.

Chiquvchi ma'lumotlar:

Yagona butun son masala yechimini chiqaring.

Misollar:
# INPUT.TXT OUTPUT.TXT
1
3
5
2
30
113
3
300000000
6461335109
Kitob yaratilingan sana: 05-Sep-25 22:59