A. Kvant klaster
Xotira: 32 MB, Vaqt: 1000 msGalaktikalar aro kvant xotira markazining imkoniyatlaridan foydalanish uchun sayohat qilayotgan jasur muhandis sifatida o'zingizni tasavvur qiling. Bu markazlarda har bir xotira "klaster"i qudratli kvant oqimining mabhasli kanallari orqali birikkan va beg'am yulduzlar oralig‘ida harakat qiladi. Har bir yangi klasterni ishga tushirishdan avval, uning barqarorligini sinash bo'yicha sirli kod amal qiladi:
S faqat hajmi 2 ning darajasi bo‘lgan klasterlargina bexavotir ma’lumotlarni saqlay oladi.
Qoidalarga amal qilinmasa, butun galaktikadagi sirli axborotlar tarqalib, ma'lumot uzilishi sodir bo'lishi mumkin! Siz - kvant tizimlarning jasur muhandisi sifatida, har bir klasterni tekshirishingiz va uni ishga tushirishda xavfsizligini ta'minlashingiz lozim.
Bir qatorda bitta butun son, \(n\) soni kiritiladi.
- \(K\)-subtask uchun: \(1\le n\le10^{3*K}\)
- \(K\)-subtask uchun ball: \(5+5*K\)
Agar faollashtirishning iloji bo'lsa "Ha", aks holda "Yo'q" so'zini chop eting.
# | INPUT.TXT | OUTPUT.TXT |
---|---|---|
1 |
7 |
Yo'q |
B. Kvant xotira
Xotira: 32 MB, Vaqt: 1000 msByteopolis shahrida kompyuterlar kvant xotira hujayralaridan quvvat oladi. Ushbu xotira birliklari sirli, eksponensial o'lchamdagi bloklarda tuzilgan.
Siz QuantaCorp’da ishlaydigan muhandissiz, u yerda sizga eski tizimlarni yangilash vazifasi yuklatilgan. Hozirda har bir tizim \(n\) xotira birligidan foydalanadi, ammo kvant xotirasi faqat ma'lum konfiguratsiyalar bilan ishlaydi. Sizning vazifangiz tizimning joriy yukini qo'llab-quvvatlaydigan eng kichik joriy kvant xotira hajmini aniqlashdir.
Bir qatorda bitta butun son, \(n\) soni kiritiladi.
- \(K\)-subtask uchun: \(1\le n\le10^{3*K}\)
- \(K\)-subtask uchun ball: \(5+5*K\)
Masala javobini yagona qatorda chop eting.
# | INPUT.TXT | OUTPUT.TXT |
---|---|---|
1 |
19 |
32 |
2 |
15246 |
16384 |
3 |
9854563 |
16777216 |
C. Error
Xotira: 32 MB, Vaqt: 1000 msOybek dasturlashga yangi kirishgan va u quyidagi kodda bir nechta xatoliklar qilib yubordi. Uni dasturini tekshirib ko'ring, va undagi barcha xatolarni tuzating. Kod to'g'ri ishlashi uchun dasturda qanday o'zgarishlar kiritishingiz lozim?
M = 10**9+7
n = int(input())
def multiply(n):
if n <= 1:
return n
else:
return n*multiply(n-1)%M
print(multiply(n))
Sizga: kodda qanday xatoliklar bor va to'g'ri ishlaydigan dasturni qayta yozishingiz so'raladi.
Bir qatorda \(n\) soni kiritiladi.
- Subtask #1: \(1\le n\le 10\) (5 ball)
- Subtask #2: \(1\le n\le1500\) (95 ball)
Masala javobini hech qanday Errorlarsiz chop eting.
# | INPUT.TXT | OUTPUT.TXT |
---|---|---|
1 |
1 |
1 |
2 |
2 |
2 |
D. a+b
Xotira: 32 MB, Vaqt: 1000 msKompyuter ikki sonni yig'indisini shunchaki \(a+b\) usulida hisoblamaydi, bu amal orita qanchadan qancha hisob-kitob yotadi. U buni Booleran Algebra, ya'ni mantiqiy amallar yordamida hisoblaydi. Buning sababi kompyuter ikkilik sanoq sistemasida hisoblaydi. Mantiqiy amallarga asosan: AND, OR va NOT operatorlari kiradi. Sizni vazifangiz o'z kodingizda '+' belgisidan foydalanmagan holda ikkita \(a\) va \(b\) sonlarini yig'indisini topishdir
Kirish qismining birinchi qatorida \(a\), ikkinchi qatorida \(b\), ikkita nomanfiy butun sonlar kiritiladi.
- Subtask #1: \(a, b\le10\) (10 ball)
- Subtask #2: \(a, b\le10^4\) (15 ball)
- Subtask #3: \(a, b\le10^6\) (20 ball)
- Subtask #4: \(a, b\le10^{10}\) (25 ball)
- Subtask #5: \(a, b\le10^{18}\) (30 ball)
\(a\) va \(b\)ning yig'indisini dasturda '+' belgisidan foydalanmagan holda chop eting.
# | INPUT.TXT | OUTPUT.TXT |
---|---|---|
1 |
25 92 |
117 |
2 |
774972 30228 |
805200 |
3 |
322079830308081368 232742480245358264 |
554822310553439632 |
E. F(n)
Xotira: 32 MB, Vaqt: 1000 msAjoyib bir funksiya bor, F(n):
- agar \(n\le1\) bo'lsa javob n ga
- agar son toq bo'lsa unda 1+F(n-1) ga
- agar juft bo'lsa F(n/2) ga teng
Sizning vafifangiz F(i)\(i \in [1;n)\)=\(a\) bo'lgan \(i\)lar sonini topishdir.
Birinchi qatorda \(n\), butun son kiritiladi.
- Subtask #1: \(1\le n\le100;1\le a\le6\) (10 ball)
- Subtask #2: \(1\le n\le10^4;1\le a\le9\) (15 ball)
- Subtask #3: \(1\le n\le10^6;1\le a\le12\) (20 ball)
- Subtask #4: \(1\le n\le10^8;1\le a\le16\) (25 ball)
- Subtask #5: \(1\le n\le10^{10};1\le a\le20\) (30 ball)
Yagona qatorda masala javobini chop eting.
# | INPUT.TXT | OUTPUT.TXT |
---|---|---|
1 |
12 1 |
4 |
2 |
35 3 |
10 |
F. Swastika
Xotira: 32 MB, Vaqt: 1000 msUshbu belgi har soniyada quyidagi tartibda kattalashadi:



Misol uchun, 1-shox 1-sekunda (1;1) da, 2-shox esa 2-sekunda (2;-1) da joylashadi — va bu ajoyib "o'sish" davom etaveradi!
\(a\)-shoxning \(n\)-sekunddagi koordinatasi va \(b\)-shoxning \(m\)-sekunddagi koordinatasi orasidagi shahmat(diagnonallarsiz) yo'l bo'yicha eng qisqa masofani hisoblang.
Eslatma: (1;1) va (0;0) orasidagi masofa — bu 2.
Kirish faylining birinchi qatorida \(a\), \(n\), \(b\), \(m\), butun sonlar kiritiladi.
- Subtask #1: \(a=b=1;n, m\le10\) (10 ball)
- Subtask #1: \(a, b\le2;n, m\le100\) (15 ball)
- Subtask #1: \(a, b\le2;n, m\le10^4\) (20 ball)
- Subtask #1: \(a, b\le4;n, m\le10^8\) (25 ball)
- Subtask #1: \(a, b\le4;n, m\le10^{18}\) (30 ball)
Shu ikki nuqta orasidagi masofani(diagonallarsiz), agar juda yirik son bo'lsa \(10^9+7\)ga bo'lgandaqi qoldiqni toping.
# | INPUT.TXT | OUTPUT.TXT |
---|---|---|
1 |
1 3 1 8 |
11 |
2 |
2 33 1 40 |
75 |
3 |
2 7652 1 7101 |
551 |
4 |
2 14711219 3 98063753 |
112774972 |