Poziom rozszerzony Formuła 2023

Maj 2026

Materiały do pobrania

1.py
licznik = 0 # Do zadania 1_1
def A(m, n):
    global licznik # Do zadania 1_1

    if n == 1:
        return m
    elif n > 1 and n % 2 == 0:
        licznik += 1
        return A(2 * m, n / 2)
    elif n > 1 and n % 2 != 0:
        licznik += 1
        return 2 * A(m, (n-1) / 2) + m


print(A(2 * (10**6), 256 * (10**6)))
print(licznik) # Do zadania 1_1
print(512*(10**12)) # Do zadania 1_2
2_2.py
def przeniesienia(a, b):
    liczba_przeniesien = 0
    przeniesienie = 0

    while a > 0:
        suma = a % 10 + b % 10 + przeniesienie

        if suma >= 10:
            liczba_przeniesien += 1
            przeniesienie = 1
        else:
            przeniesienie = 0

        a //= 10
        b //= 10

    return liczba_przeniesien


print(przeniesienia(37932, 12528))
3_1.py
def f(s):
    wartosci_ascii = []
    for letter in s:
        wartosci_ascii.append(ord(letter))
    return sum(wartosci_ascii)

# print(abs(f("oko") - f("pies")))

pary_slow = []
wartosci_bezwzgledne = []
with open("pary.txt") as file:
    for line in file:
        line = line.split()
        pary_slow.append(line)
        wartosci_bezwzgledne.append(abs(f(line[0]) - f(line[1])))

# print(pary_slow)
# print(max(wartosci_bezwzgledne))

maks = max(wartosci_bezwzgledne)
for i in range(len(wartosci_bezwzgledne)):
    if wartosci_bezwzgledne[i] == maks:
        print(pary_slow[i][0], pary_slow[i][1], maks)
3_2.py
def W(s1, s2):
    suma = 0

    for litera in "abcdefghijklmnopqrstuvwxyz":
        suma += min(s1.count(litera), s2.count(litera))

    return suma

maks = 0
wynik = []

with open("pary.txt") as file:
    for line in file:
        s1, s2 = line.split()

        w = W(s1, s2)

        if w > maks:
            maks = w
            wynik = [s1, s2]

print(wynik[0], wynik[1], maks)
3_3.py
def prefiksosufiks(s1, s2):
    maks = 0

    for i in range(1, len(s1) + 1):
        if s2.endswith(s1[:i]):
            maks = i

    for i in range(1, len(s2) + 1):
        if s1.endswith(s2[:i]):
            maks = max(maks, i)

    return maks


with open("pary.txt") as file:
    for line in file:
        s1, s2 = line.split()

        wynik = prefiksosufiks(s1, s2)

        if wynik >= 5:
            print(s1, s2, wynik)
4_2.py
with open("korpo.txt") as f:
    szefowie = []

    for line in f:
        szefowie.append(int(line))

licznik = 0

for pracownik in range(len(szefowie) + 1):
    if pracownik not in szefowie:
        licznik += 1

print(licznik)
4_3.py
with open("korpo.txt") as f:
    szefowie = []

    for line in f:
        szefowie.append(int(line))

ma_najwiecej = 0
maks_podwladnych = 0

for i in range(1, len(szefowie) + 1):
    licznik = 0

    for j in szefowie:
        if j == i:
            licznik += 1

    if licznik > maks_podwladnych:
        maks_podwladnych = licznik

        ma_najwiecej = i

print(ma_najwiecej, maks_podwladnych)
4_4.py
with open("korpo.txt") as f:
    szef = [0]

    for line in f:
        szef.append(int(line))

maks_przelozonych = 0
ile_pracownikow = 0

for i in range(1, len(szef)):
    licznik = 0
    pracownik = i

    while szef[pracownik] != 0:
        licznik += 1
        pracownik = szef[pracownik]

    if licznik > maks_przelozonych:
        maks_przelozonych = licznik
        ile_pracownikow = 1

    elif licznik == maks_przelozonych:
        ile_pracownikow += 1

print(maks_przelozonych, ile_pracownikow)
8_5.sql
SELECT DISTINCT
Produkty.IdProduktu, 
Produkty.Nazwa
FROM 
Kategorie
JOIN Produkty ON Kategorie.IdKategorii = Produkty.IdKategorii
JOIN Opis_transakcji ON Produkty.IdProduktu = Opis_transakcji.IdProduktu
WHERE
Kategorie.NazwaKategorii = 'spozywcze'
AND Produkty.Opis LIKE '%do ekspresu kolbowego%';
1_2.txt
777
512000000000000 (512 * (10**12))
1_3.txt
k   2**(k-i)
k-1 (2**k-i) -1
2_1.txt
0
3
6.txt
Adres IP w wersji 4 ma długość 32 bity.
Adres IP w wersji 6 ma długość 128 bitów.
wyniki7.txt
7_1:
Jan	1.1
Feb	4.1
Mar	4.1
Apr	7.4
May	15.9
Jun	20.5
Jul	20.4
Aug	21.1
Sep	13.7
Oct	12.5
Nov	5.2
Dec	1.6

7_2:
Miesiąc	    Najdłuższy ciąg
Styczeń	    11
Luty	    7
Marzec	    20
Kwiecień	8
Maj	        20
Czerwiec	11
Lipiec	    10
Sierpień	8
Wrzesień	14
Październik	15
Listopad	10
Grudzień	10

7_3:
14-08-2023 (167. dzień)

7_4:
94
wyniki8.txt
8_1:
Marcelino	Kruk

8_2:
K	689
M	651

8_3:
28	19443.29

8_4:
14  1