A. Qodirali va Sonlar Sarguzashti

Xotira: 32 MB, Vaqt: 1000 ms
Masala

Qodirali o‘zini haqiqiy raqamlar sehrgari deb biladi va har safar yangi sonli o‘yinlarni kashf etishni yoqtiradi. Bugun esa u qo‘lida uzunligi \(n\) bo‘lgan 0-indeksli \(arr\) massiv bilan o‘ynayapti.

Siz \([0, n-1]\) oraliqdan \(k\) ta son ( \(k \ge 2\) ) tanlaysiz. Qoidaga ko‘ra, tanlagan sonlaringiz orasida \(0\) va \(n-1\) albatta bo‘lishi kerak.

Qodirali tanlagan indeklaringizdan yangi \(ind\) massiv tuzadi. Endi, bu massiv yordamida u o‘zining maxsus «qiziqarli qiymat»ini quyidagicha hisoblaydi:

\[s = \sum_{i=1}^{k} (-1)^{i+1} \cdot (ind_i - ind_{i-1}) \cdot arr[ind_i]\]

Sizning vazifangiz – shunday indekslar to‘plamini tanlash kerakki, hosil bo‘ladigan \(s\) maksimal qiymatga ega bo‘lsin. Eng kattasini toping va ekranga chiqaring!

Kiruvchi ma'lumotlar:

1-qatorida \(n\) soni. \(2 \le n \le 10^5\)

2-qatorida \(n\) ta sonli \(arr\) massiv kiritiladi. \(1 \le arr[i] \le 10^9\)

Chiquvchi ma'lumotlar:

Eng maksimal \(s\) ni chiqaring.

Misollar:
# INPUT.TXT OUTPUT.TXT
1
5
17 14 15 15 8
37
2
10
12 16 10 14 18 11 14 1 6 4
91

B. Ko'prikdan o'tish

Xotira: 128 MB, Vaqt: 1000 ms
Masala

Osma ko‘prik chuqur darani kesib o‘tadi. Odamlar ko‘prikdan guruh bo‘lib o‘tishlari mumkin, ammo ko'prik juda ham eski bo'lganligi uchun, hammani bir vaqtda ko'tara olmaydi, boshqa so'zlar bilan aytganda bir vaqtda ko'prikdan faqatgina 1 ta guruh o'tishi mumkin va guruhdagi odamlar soni M tadan oshmasligi kerak. Guruhning ko‘prikdan o‘tish vaqti shu guruhdagi eng sekin odamning tezligiga bog‘liq. Siz ko‘prik xavfsizligi uchun mas’ulsiz va guruhlarning o‘tishini nazorat qilasiz.

Odamlar navbatda turishgan; oldingi guruh o‘tib bo‘lgach, siz navbatdagi bir necha kishiga “endi o‘tishingiz mumkin” deb ruxsat berasiz. Guruhlar turli hajmda bo‘lishi mumkin, lekin hech bir guruhda M tadan ortiq odam bo‘lmasligi shart. Maqsad — odamlarning tartibini buzmasdan, hammani eng qisqa umumiy vaqt ichida ko'prikdan o‘tkazishdir.

Kiruvchi ma'lumotlar:

Kirishning birinchi qatorida bitta butun son \(T\) - testlar soni kiritiladi. Har bir test quyidagi formatda kiritiladi:

  • Birinchi qatorda \(N\) hamda \(M\) - odamlar soni hamda guruh uchun cheklov qiymati kiritiladi.
  • Keyingi qatorda N ta butun son - har bir odamning ko'prikdan o'tish vaqti kiritiladi. Bunda 1 - son, navbat boshida turgan insonga, N - son esa navbat oxiridagi odamga to'g'ri keladi.  

\(1 \le T \le 10^4\)

\(1 \le N \le 10^5\)

\(1 \le M \le min(100, N)\)

\(N\) ning barcha testlardagi umumiy qiymati \(5 \times 10^5\) dan oshmaydi

Chiquvchi ma'lumotlar:

Har bir test uchun, alohida qatorda bitta butun son, hamma odam ko'prikdan xavfsiz o'tishi uchun minimal qancha vaqt ketishini chop eting.

Misollar:
# INPUT.TXT OUTPUT.TXT
1
3
5 2
1 2 3 4 5
4 3
5 1 2 6
6 3
3 3 3 3 3 3
9
11
6

C. Ajoyib juftliklar 3

Xotira: 32 MB, Vaqt: 1000 ms
Masala

Javohirning ustozi Mehriddin unga matematik masala berdi. Ammo u juda erinchoqligi uchun dastur tuzishga qaror qildi. Masala sharti quyidagicha: n va s natural sonlari beriladi, sizning vazifangiz n xonali yig’indisi s ga teng bo’lgan eng kichik va eng katta ikkita qiymatni topish. Agar bunday qiymatlar mavjud bo’lmasa, "-1 -1" (qo'shtirnoqsiz) ni chop eting

Kiruvchi ma'lumotlar:

Kirish faylining birinchi qatorida  \(n(1 \le \ n \le \ 10^5)\)natural va \(s (0 \le s \le 10 ^ {18}\) butun sonlar kiritiladi

Chiquvchi ma'lumotlar:

Chiqish faylining yagona satrida masala jovobi chop etilsin

Misollar:
# INPUT.TXT OUTPUT.TXT
1
2 1
10 10
2
3 10
109 910

D. Psevdokod

Xotira: 256 MB, Vaqt: 3000 ms
Masala

Nyuboy CP(Competitive Programming)ga qiziqadi. U hozir bitta masalani ishlayotgan edi. Nyuboy ushbu masalani 2-urinishda hal qildi. Sizga Nyuboyning 1-yechimi beriladi. Siz ushbu masalani ishlay olasizmi?

!!! Nyuboyning 1-yechimidagi yagona muammo Time Limit edi.

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
	int n, q; cin >> n >> q;
	vector <int> a(n + 1);
	for (int i = 1; i <= n; ++ i) cin >> a[i];
	while (q --){
		int l, r, k;
		cin >> l >> r >> k;
		vector <int> b;
		for (int i = l; i <= r; ++ i) b.push_back(a[i]);
		sort(b.begin(), b.end());
		cout << b[k - 1] << '\n';
	}
	return 0;
}
Kiruvchi ma'lumotlar:

Birinchi qatorda n va q natural sonlari kiritiladi. \((n, q \le 10^5)\)

Ikkinchi qatorda n ta natural son kiritiladi. \((1 \le i \le n  ,  a[i] \le 10^5)\)

Keyingi q ta qatorning har birida l, r va k natural sonlari kiritiladi.

\((1 \le l \le r \le n,   k \le r - l  + 1)\)

Chiquvchi ma'lumotlar:

Masalaning javobini chop eting.

Misollar:
# INPUT.TXT OUTPUT.TXT
1
5 4
3 2 1 5 4
1 4 3
1 5 2
1 1 1
3 5 3
3
2
3
5

E. Maxsus topshiriq

Xotira: 256 MB, Vaqt: 1000 ms
Masala

Mashhur tadbirkor Aziz Asqarov, N ta korxonaga egalik qiladi. Uning yaqin do‘sti, taniqli moliyachi Bekzod Rustamov esa “TUIT Bank” xolding kompaniyasiga ega bo‘lib, unda ham N ta bank mavjud.
Ularning uzoq yillik hamkorligi tufayli — Azizning korxonalari faqat Bekzodning banklaridan kredit oladi, va Bekzodning banklari faqat Azizning korxonalariga kredit beradi. Kredit summalari soliqlardan qochish maqsadida sir tutilgan.

Ammo bir kuni ularning eski raqibi, Moliyaviy nazorat qo‘mitasi boshlig‘i Jamshid Karimov, o‘tmishdagi raqobatdan o‘ch olishga qaror qiladi. Jamshidning maqsadi — Aziz va Bekzod o‘rtasidagi barcha kredit operatsiyalarini fosh etish.

Avvalo, Jamshidning inspektorlari Azizning korxonalaridan ayrim hujjatlarni qo‘lga kiritishdi.
Har bir korxona uchun jami olingan kredit miqdori aniqlanib, bu SR[i] deb belgilandi.
Keyin esa Bekzodning banklarida o‘tkazilgan reydlarda har bir bank tomonidan berilgan jami kredit miqdori topildi — bu SC[j] qiymatlari sifatida yozildi.

Endi Jamshidning maqsadi — ushbu ma’lumotlar asosida kredit matritsasini tiklash.

Bu matritsa N×N o‘lchamdagi jadval bo‘lib, har bir elementi
A[i, j] = i-korxona Bekzodning j-bankidan olgan kredit miqdori
ko‘rinishida bo‘ladi.

Ma’lumki, har bir kredit miqdori 0 dan 100 gacha bo‘lgan butun son.
Ammo Jamshid olgan ma’lumotlar soxtalashtirilgan bo‘lishi mumkin, shuning uchun bunday matritsani tuzish imkonsiz holatlar ham bo‘ladi.

Kiruvchi ma'lumotlar:

Birinchi qatorda bitta butun son — N (2 ≤ N ≤ 100) kiritiladi.

Ikkinchi qatorda SR[i] qiymatlar — har bir korxona olgan jami kreditlar (0 ≤ SR[i] ≤ 32000) beriladi.

Uchinchi qatorda SC[j] qiymatlar — har bir bank bergan jami kreditlar (0 ≤ SC[j] ≤ 32000) kiritiladi.

\(\sum SR[i] = \sum SC[j] \) ekanligi kafolatlanadi

Chiquvchi ma'lumotlar:

Agar bunday kredit matritsasini tuzishning iloji bo‘lmasa, “NO” deb chiqaring.
Aks holda:

  • Birinchi qatorda “YES” deb yozing;
  • Keyingi N qatorda esa mos holda A[i, j] elementlarni chiqaring (bo‘sh joy bilan ajratilgan holda).

Agar bir nechta yechimlar mavjud bo‘lsa — istalganini chiqarish mumkin.

Misollar:
# INPUT.TXT OUTPUT.TXT
1
3
15 10 3
11 5 12
YES
10 0 5
0 3 7
1 2 0
2
2
201 0
100 101
NO

F. Sehrli sonlar

Xotira: 32 MB, Vaqt: 1000 ms
Masala

Bilmasvoy raqamlarni juda yaxshi ko‘radi. Har kuni u turli sonlar bilan o‘ynab, “sehrli sonlar” deb nomlagan sonlarni izlaydi.

Uning fikricha, sonning sehrli bo‘lishi uchun uning raqamlari yig‘indisi ma’lum bir \(S\) soniga teng bo‘lishi kerak.

Endi Bilmasvoy bir oraliqni tanladi: \([A, B]\). U shunday savolga javob izlamoqda: Shu \([A, B]\) oraliqda nechta sehrli son mavjud? Va ular orasida eng kichigi qaysi?

Bilmasvoy juda charchagan, shuning uchun u bu ishni kompyuterga topshirishni xohlaydi. Uning o‘rniga shunday dastur yozingki, u sehrli sonlar sonini va eng kichik sehrli sonni topib bersin.

Kiruvchi ma'lumotlar:

Yagona qatorda uchta butun son \(A, B, S\)beriladi, mos ravishda Bilmasvoy tanlagan oraliq hamda sehrli sonning raqamlari yig'indisi teng bo'lishi kerak bo'lgan son. \(1\le A \le B <10^{15}, 1\le S\le 135)\)

Chiquvchi ma'lumotlar:

Birinchi qatorda — [A, B] oraliqda raqamlari yig‘indisi \(S\) ga teng bo‘lgan sonlar soni. 

Ikkinchi qatorda — shunday sonlardan eng kichigini chiqaring.
 

Eng kamida bitta sehrli son bolishi kafolatlanadi.

Misollar:
# INPUT.TXT OUTPUT.TXT
1
1 9 5
1
5
2
1 100 10
9
19

G. Parvoz vaqti

Xotira: 32 MB, Vaqt: 1000 ms
Masala

ICPC ishtirokchilari tayyorgarlik uchun chet elga yo‘l olishdi. Ular har daqiqadan unumli foydalanishni xohlagani uchun samolyotda uchish davomida masalalar yechmoqchi. Ularda masalalar ustida ishlash uchun eng kamida qancha vaqt borligini aniqlang.

Kiruvchi ma'lumotlar:

Kirishning dastlabki satrida samolyotning uchish vaqti \(hh:mm\) ko'rinishida kiritiladi.

Keyingi satrda qo'nish vaqti \(hh:mm\) formatida kiritiladi.

Uchinchi satrda mintaqalar orasidagi soatlar farqi kiritiladi. Farq -12 dan +12 gacha bo'lishi mumkin.

\(00 \le hh \le 23\)

\(00 \le mm \le 59\)

Chiquvchi ma'lumotlar:

Minimum parvoz vaqtini \(hh:mm\) formatida chop eting.

Misollar:
# INPUT.TXT OUTPUT.TXT
1
12:00
13:00
0
01:00
2
23:00
01:00
0
02:00
3
01:50
12:50
+1
10:00

H. Zarif sayohati

Xotira: 32 MB, Vaqt: 1000 ms
Masala

Sayohatchi Zarif dekart koordinatalar sistemasining \((x_1, y_1)\) nuqtasidan undan farqli bo'lgan \((x_2, y_2)\)  nuqtasiga yetib bormoqchi. Lekin u sakrashni birdan qila olmaydi, oldin  \((x_1, y_1)\) dan turib undan farqli bo'lgan \((x_3, y_3)\) nuqtaga yurib, keyin \((x_3, y_3)\) nuqtadan undan farqli \((x_2, y_2)\) nuqtaga o'tmoqchi. Yagona sharti, o'tish davomida shunaqangi  \((x_3, y_3)\)  koordinatalarni tanlamoqchiki, butun sayohati davomida \((x_1, y_1), (x_2, y_2), (x_3, y_3)\) nuqtalaridan tashqari boshqa umuman butun koordinatali nuqtalar ustidan bosib o'tmasligi kerak.

Kiruvchi ma'lumotlar:

Birinchi qatorda bitta butun son \(T (1 \leq T \leq 10^5) \) testlar soni kiritiladi.

Har bir test uchun yangi qatorda to'rtta butun son, \(x_1, y_1, x_2, y_2\) sonlari kiritiladi. Sonlarning absolut qiymati \(10^9\) dan oshmasligi kafolatlanadi.

 

Chiquvchi ma'lumotlar:

Har bir test uchun yangi qatordan, probel bilan ajratilgan \((x_3, y_3)\) koordinatani chiqaring. \(|x_3|, |y_3| \leq 2*10^9\) bo'lishi lozim. Istalgan yechimni chiqarishingiz mumkin

Misollar:
# INPUT.TXT OUTPUT.TXT
1
3
0 0 100 0
0 0 12 8
-1000000000 1000000000 1000000000 -1000000000
101 -1
11 -1
1000000001 999999999
Kitob yaratilingan sana: 27-Nov-25 16:09