A. Kvant klaster

Xotira: 32 MB, Vaqt: 1000 ms
Masala

Galaktikalar 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.

Kiruvchi ma'lumotlar:

Bir qatorda bitta butun son, \(n\) soni kiritiladi.

  • \(K\)-subtask uchun: \(1\le n\le10^{3*K}\)
  • \(K\)-subtask uchun ball: \(5+5*K\)
Chiquvchi ma'lumotlar:

Agar faollashtirishning iloji bo'lsa "Ha", aks holda "Yo'q" so'zini chop eting.

Misollar:
# INPUT.TXT OUTPUT.TXT
1
7
Yo'q

B. Kvant xotira

Xotira: 32 MB, Vaqt: 1000 ms
Masala

Byteopolis 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.

Kiruvchi ma'lumotlar:

Bir qatorda bitta butun son, \(n\) soni kiritiladi.

  • \(K\)-subtask uchun: \(1\le n\le10^{3*K}\)
  • \(K\)-subtask uchun ball: \(5+5*K\)
Chiquvchi ma'lumotlar:

Masala javobini yagona qatorda chop eting.

Misollar:
# INPUT.TXT OUTPUT.TXT
1
19
32
2
15246
16384
3
9854563
16777216

C. Error

Xotira: 32 MB, Vaqt: 1000 ms
Masala

Oybek 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.

Kiruvchi ma'lumotlar:

Bir qatorda \(n\) soni kiritiladi. 

  • Subtask #1: \(1\le n\le 10\) (5 ball)
  • Subtask #2: \(1\le n\le1500\) (95 ball)
Chiquvchi ma'lumotlar:

Masala javobini hech qanday Errorlarsiz chop eting.

Misollar:
# INPUT.TXT OUTPUT.TXT
1
1
1
2
2
2

D. a+b

Xotira: 32 MB, Vaqt: 1000 ms
Masala

Kompyuter 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

Kiruvchi ma'lumotlar:

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)
Chiquvchi ma'lumotlar:

\(a\) va \(b\)ning yig'indisini dasturda  '+' belgisidan foydalanmagan holda chop eting.

Misollar:
# INPUT.TXT OUTPUT.TXT
1
25
92
117
2
774972
30228
805200
3
322079830308081368
232742480245358264
554822310553439632

E. F(n)

Xotira: 32 MB, Vaqt: 1000 ms
Masala

Ajoyib 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.

Kiruvchi ma'lumotlar:

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)
Chiquvchi ma'lumotlar:

Yagona qatorda masala javobini chop eting.

Misollar:
# INPUT.TXT OUTPUT.TXT
1
12 1
4
2
35 3
10

F. Swastika

Xotira: 32 MB, Vaqt: 1000 ms
Masala

Ushbu 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.

Kiruvchi ma'lumotlar:

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)
Chiquvchi ma'lumotlar:

Shu ikki nuqta orasidagi masofani(diagonallarsiz), agar juda yirik son bo'lsa \(10^9+7\)ga bo'lgandaqi qoldiqni toping.

Misollar:
# 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
Kitob yaratilingan sana: 06-Aug-25 06:15