Wróć do: Arkusze maturalne
2023MAJ

Matura z informatyki 2023 – maj, poziom rozszerzony

Formuła 2015arkusz CKE · poziom rozszerzony

Arkusz maturalny z informatyki rozszerzonej, maj 2023 (Formuła 2015). Rozwiąż zamknięte części zadań online i sprawdź odpowiedzi, pobierz PDF z pełną treścią, dane do zadań oraz klucz CKE.

01

Opis

Arkusz maturalny z informatyki na poziomie rozszerzonym z sesji maj 2023 w Formule 2015 (stara podstawa programowa). Egzamin składał się z dwóch części: Część I (60 minut, 15 punktów) oraz Część II (150 minut, 35 punktów). Poniżej znajdziesz interaktywne wersje zamkniętych części zadań – uzupełnij puste pola i kliknij Sprawdź, aby od razu sprawdzić poprawność (odpowiedzi pochodzą z klucza CKE).

W zadaniach z konkretną odpowiedzią (liczba, wartość, lista) wpisz swój wynik i kliknij Sprawdź. W zadaniach otwartych (napisz program, algorytm, zapytanie SQL) kliknij Pokaż odpowiedź, aby zobaczyć wzorcowe rozwiązanie z klucza CKE. Pełną treść zadań znajdziesz też w arkuszu PDF.

02

Zadanie 1. Ciąg i jego opis

Rozważamy ciągi złożone z liczb całkowitych dodatnich. Jeżeli mamy pewien ciąg A, możemy skonstruować drugi ciąg B, będący opisem A, w następujący sposób: każdy fragment A będący p-krotnym powtórzeniem jednej liczby x zamieniamy na dwie liczby p i x w ciągu B.

Przykład: ciąg (1, 1, 3, 2, 2, 1) to „dwie jedynki, jedna trójka, trzy dwójki i jedna jedynka", a więc jego opis to (2, 1, 1, 3, 3, 2, 1, 1).

Z kolei ciąg (2, 2, 2, 2, 5, 3, 3) to kolejno „cztery dwójki, jedna piątka, dwie trójki", więc jego opis to (4, 2, 1, 5, 2, 3).

Zadanie 1.1

Uzupełnij poniższą tabelę – wpisz w odpowiednie pola: opisy dla podanych przykładów ciągu A, długości tych opisów oraz ciąg A, dla którego podano opis i długość tego opisu.

Ciąg AOpis ciągu A (ciąg B)Długość opisu ciągu A (liczba elementów ciągu B)
(1, 1, 3, 2, 2, 1)(2, 1, 1, 3, 3, 2, 1, 1)8
(3, 3, 3, 2, 2, 1, 1, 1, 6)
(2, 2, 2, 2, 2, 2)
(4, 1, 1, 4)4

Zadanie 1.2

Zapisz w pseudokodzie lub wybranym języku programowania algorytm, który dla danego ciągu A, zapisanego w tablicy A[1..n], obliczy długość jego opisu (liczbę elementów ciągu B) zgodnie z podanymi wcześniej regułami.

Uwaga: W zapisie możesz wykorzystać tylko operacje arytmetyczne (dodawanie, odejmowanie, mnożenie, dzielenie, dzielenie całkowite, reszta z dzielenia), porównywanie znaków i liczb, odwoływanie się do pojedynczego elementu tablicy, instrukcje sterujące, przypisania do zmiennych lub samodzielnie napisane funkcje, wykorzystujące wyżej wymienione operacje. Zabronione jest używanie funkcji wbudowanych oraz operatorów innych niż wymienione, dostępnych w językach programowania.

Specyfikacja
Dane: n – liczba całkowita dodatnia – liczba elementów ciągu A A[1..n] – tablica liczb całkowitych dodatnich zawierająca kolejne elementy ciągu A Wynik: w – liczba elementów ciągu B, będącego opisem ciągu A

Kliknij Pokaż odpowiedź, aby zobaczyć rozwiązanie z klucza CKE.

Uwaga: to zadanie otwarte – odpowiedź z klucza CKE jest jedynie przykładowa; istnieją również inne poprawne rozwiązania.

03

Zadanie 2. Funkcja rekurencyjna

Dane są dodatnia liczba całkowita n i tablica A[1..n] zawierająca n dodatnich liczb całkowitych. Przeanalizuj działanie zapisanej poniżej funkcji f, której parametry p i q spełniają warunek 1 ≤ p ≤ q ≤ n.

f(p, q):
    jeżeli p  q
        k  (q – p + 1) div 2
        dla i = 1, 2, ..., k
            zamień(A[p + i – 1], A[q – k + i ])
        f(p, p + k – 1)
        f(q – k + 1, q)

Uwaga:

  • div jest operatorem oznaczającym część całkowitą z dzielenia
  • operacja zamień(x, y) zamienia ze sobą wartości zmiennych x i y
  • jest operatorem przypisania; x ← 2 oznacza, że wartość x staje się 2

Zadanie 2.1

Uzupełnij tabelę – dla podanych wartości n i tablicy A[1..n] podaj, jaki będzie stan tablicy A (jakie będą wartości elementów tej tablicy) po zakończeniu działania funkcji f wywołanej z parametrami 1, n.

nAZawartość A po wykonaniu f(1, n)
3[2, 3, 4]
4[1, 2, 3, 4]
10[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Zadanie 2.2

Uzupełnij tabelę – podaj, ile razy po wywołaniu f(1, n) dla tablicy A[1..n] wykonana zostanie operacja zamień().

Uwaga: zauważ, że liczba wykonań operacji zamień nie zależy od zawartości tablicy A, a tylko – od jej długości.

nLiczba operacji zamień() po wywołaniu f(1, n)
44
8
16
256
04

Zadanie 3. Test

Oceń prawdziwość podanych zdań. Zaznacz P, jeśli zdanie jest prawdziwe, albo F – jeśli jest fałszywe.

W każdym zadaniu punkt uzyskasz tylko za komplet poprawnych odpowiedzi.

Zadanie 3.1

Rozważamy dwie funkcje F i G, których argumentem jest liczba całkowita x > 1 (gdzie mod oznacza resztę z dzielenia):

F(x):
    i  2
    dopóki x mod i  0 wykonuj
        i  i + 1
    zwróć i

G(x):
    i  x – 1
    dopóki x mod i  0 wykonuj
        i  i – 1
    zwróć i
NrZdanieP / F
1.F(2)=2 oraz G(2)=1.
2.Dla każdej liczby parzystej x wartość F(x) jest parzysta.
3.Dla każdej liczby parzystej x wartość G(x) jest parzysta.
4.Dla każdej liczby x większej od 2 F(x) dzieli liczbę x.

Zadanie 3.2

NrZdanieP / F
1.A5₁₆ = 245₈
2.A5₁₆ < 10100100₂
3.10100100₂ = 2210₄
4.2210₄ < 245₈

Zadanie 3.3

Informacja do zadań 3.3. i 3.4.

W bazie danych znajdują się tabele zwierzeta oraz gromady.

Tabela zwierzeta zawiera dane: identyfikator zwierzęcia (id), gatunek (gatunek), sposób odżywiania (sposob_odzywiania – mięsożerne, roślinożerne) oraz identyfikator gromady, do której należy dany gatunek (id_gromady). Pole id jest kluczem podstawowym w tej tabeli. Tabela gromady zawiera pola: identyfikator gromady (id – klucz podstawowy) oraz nazwę gromady (gromada).

Poniżej pokazano przykładowe dane z obu tabel.

Tabela zwierzeta

idgatuneksposob_odzywianiaid_gromady
1lew afrykanskimiesozerne2
2zyrafaroslinozerne2
3krokodyl nilowymiesozerne3

Tabela gromady

idgromada
1ptaki
2ssaki
3gady
4ryby

Dla tabel opisanych wyżej (i podanych danych przykładowych) listę nazw gatunków wszystkich ssaków z tabeli zwierzeta otrzymamy w wyniku zapytania

NrZapytanieP / F
1.SELECT gatunek FROM zwierzeta WHERE id_gromady = 2;
2.SELECT gatunek FROM zwierzeta, gromady WHERE zwierzeta.id_gromady=gromady.id AND gromada = "ssaki";
3.SELECT gatunek FROM zwierzeta INNER JOIN gromady ON zwierzeta.id_gromady=gromady.id WHERE gromada = "ssaki";
4.SELECT gatunek FROM zwierzeta LEFT JOIN gromady ON zwierzeta.id_gromady=gromady.id WHERE gromada = "2";

Zadanie 3.4

Dla tabel opisanych wcześniej i podanych danych przykładowych

NrZdanieP / F
1.w wyniku zapytania: SELECT gromada, count(*) FROM gromady INNER JOIN zwierzeta ON zwierzeta.id_gromady = gromady.id GROUP BY gromada; otrzymamy nazwy gromad oraz liczby gatunków zwierząt należących do tych gromad.
2.w wyniku zapytania: SELECT gromada, count() FROM gromady INNER JOIN zwierzeta ON zwierzeta.id_gromady = gromady.id GROUP BY gromada; otrzymamy liczbę różnych gromad z tabeli gromady*.
3.w wyniku zapytania: SELECT count() FROM zwierzeta INNER JOIN gromady ON zwierzeta.id_gromady = gromady.id WHERE gromady.id=2; otrzymamy liczbę gatunków ssaków z tabeli zwierzeta*.
4.w wyniku zapytania: SELECT count() FROM zwierzeta, gromady WHERE zwierzeta.id_gromady = gromady.id AND gromady.gromada = "ssaki"; otrzymamy liczbę gatunków ssaków z tabeli zwierzeta*.
05

Zadanie 4

W pliku slowa.txt zapisano 50 słów o długościach nie większych niż 1000 złożonych z małych liter alfabetu angielskiego.

Napisz program(y), który(e) da(dzą) odpowiedzi do poniższych zadań. Odpowiedzi do poszczególnych zadań zapisz – odpowiednio – w plikach wyniki4_1.txt, wyniki4_2.txt i wyniki4_3.txt.

Plik przyklad.txt zawiera przykładowe dane spełniające warunki zadania. Odpowiedzi dla danych z tego pliku są podane pod treściami zadań.

Zadanie 4.1

Słowo nazwiemy WK-słowem, jeśli liczba wystąpień liter w i k w tym słowie jest taka sama.

Przykład:

Wśród słów: wakacje, wirus, kawa, matura, wykopki
WK-słowami są: wakacje, kawa, matura

Uwaga: zauważ, że w słowie matura litery w i k występują po 0 razy.

Zapisz w pliku wyniki4_1.txt wszystkie słowa z pliku slowa.txt, które są WK-słowami. Każde takie słowo wypisz w oddzielnym wierszu, zachowując kolejność z pliku slowa.txt.

Dla pliku przyklad.txt odpowiedzią jest następująca lista:

wk
wakacje
wakacjeachwakacje
abecadlo
ecowaijnippekiqswogbpznphwomxusaqevzhvtkretilpkquu
ekrceicjhhpfopqgrcewzqpctskjpslbwurgxkzdilluwfitfr
qtgcwgmbdctpgdwfmgbjdubycidalszpbnaseolwgstwznhadwuikdnlvmsimyqgkickqomanlzyuqkvhskxhgihqyzxehhyjbnr
hvwbftvexpojohhgapnynaqxsrpvljolhtzzwgdzqhjqucgszongxpplmxzllaahlieihhyyostkpidsmrnnylyroyvkrsmprosg
uwlccorhlvfnnuleavntzuqalkrajcsnlwlynncrsmvfejqjvxnntlljxxekaeptexfubclfsarlbkvwhtxzwakdhselohpejjty
grlpvomqxxmokigdomdyriikuxvwejqkqligrgdlcrrotijjddwopghqziinqmjarannnstqbhlduvynetvsrnvbdnrbkahywwbn
cwhakacjewakacjewakackjewwakacjewakacje
wakaccajrysewakbiacjxegizwaihkcnurfajcje
wakacjewakacjewakacjewaukacjewakacjewakacjewakacjewakacjewakacjewakacjewakacjewakacjdewakacjewakacje
dmmwszylwwkahyowrjblddukhvkszacyjcowyamezwbmoahrkadrghhcbxljofeykzefqlcrwaaqmykacjuejwsamnkaqskcuzje

Poniżej wpisz słowa będące WK-słowami z pliku slowa.txt (każde w osobnym wierszu) i kliknij Sprawdź.

Zadanie 4.2

Dla każdego słowa z pliku slowa.txt oblicz, ile słów wakacje można ułożyć ze znaków występujących w tym słowie (każdego znaku z tego słowa możesz użyć najwyżej raz).

Przykład:

Dla słowa wwwaaaaakkccjee odpowiedzią jest 2 (w słowie są trzy litery w i trzy litery c, jednak nie możemy ułożyć trzech słów wakacje, ponieważ mamy do dyspozycji tylko 5 liter a – zamiast sześciu, oraz po dwie j oraz e – zamiast trzech).
Dla słowa awkcjcje odpowiedzią jest 0 (ponieważ brakuje jednego a).

Jako rozwiązanie podaj, zapisany w jednym wierszu pliku wyniki4_2.txt, ciąg pięćdziesięciu liczb rozdzielonych spacjami, w którym i-ta liczba jest równa liczbie słów wakacje, które można wyodrębnić z liter i-tego słowa z pliku slowa.txt.

Dla pliku przyklad.txt odpowiedzią jest:

0 0 0 1 2 0 2 2 2 3 0 1 0 0 0 0 1 0 2 0 2 0 2 0 2 1 3 1 3 3 2 5 3 2 1 3 3 14 13 5 2 4 5 9 70 28 80 39 56 57 25 30

Poniżej wpisz ciąg pięćdziesięciu liczb (rozdzielonych spacjami) dla pliku slowa.txt i kliknij Sprawdź.

Zadanie 4.3

Wakacyjnym słowem nazwiemy słowo otrzymane przez sklejenie z sobą dowolnie wiele razy słowa wakacje. Tak więc wakacyjnymi słowami są słowa: wakacje, wakacjewakacje, wakacjewakacjewakacje itd. Przyjmujemy, że wakacyjnym słowem jest także słowo puste, tj. niezawierające żadnej litery.

Dla każdego słowa z pliku slowa.txt oblicz najmniejszą liczbę liter, które należy z niego wykreślić, by słowo powstałe w ten sposób było wakacyjnym słowem.

Przykłady:

1. Dla słowa wakaaaacjee odpowiedzią jest 4, ponieważ można z tego słowa otrzymać dwa słowa wakacyjne: - słowo puste – przez wykreślenie wszystkich 11 liter, - słowo wakacje – przez wykreślenie czterech liter: trzech liter a oraz jednej litery e.

2. Dla słowa waktfaczdjeaewasakvgacrje odpowiedzią jest 11. Można z niego otrzymać trzy słowa wakacyjne: słowo puste, słowo wakacje oraz słowo wakacjewakacje. W tym ostatnim przypadku trzeba wykreślić 11 liter, a w pozostałych przypadkach – więcej niż 11 liter.

3. Dla słowa awkcjcje odpowiedzią jest 8 (w tym przypadku trzeba wykreślić wszystkie litery aby uzyskać słowo puste, które także jest słowem wakacyjnym).

Jako rozwiązanie podaj ciąg pięćdziesięciu liczb, w którym i-ta liczba jest równa minimalnej liczbie liter, które należy wykreślić z i-tego słowa z pliku slowa.txt, by uzyskać słowo wakacyjne. Zapisz wynikowy ciąg w jednym wierszu pliku wyniki4_3.txt, oddzielając liczby spacjami.

Dla pliku przyklad.txt odpowiedzią jest:

1 2 2 0 3 8 17 27 37 12 50 50 50 50 50 50 50 50 100 100 100 100 93 100 93 100 19 19 26 5 19 26 33 19 86 2 9 72 93 79 65 37 566 916 503 839 678 678 944 930

Poniżej wpisz ciąg pięćdziesięciu liczb (rozdzielonych spacjami) dla pliku slowa.txt i kliknij Sprawdź.

06

Zadanie 5. Konfitury owocowe

W pliku owoce.txt zapisano informacje o dostawach owoców do przetwórni w okresie od 01.05.2020 do 30.09.2020.

W każdym wierszu podane są: data dostawy (dd.mm.rrrr), liczba kilogramów dostarczonych malin, liczba kilogramów dostarczonych truskawek i liczba kilogramów dostarczonych porzeczek, oddzielone znakiem tabulacji.

Dostawy odbywały się każdego dnia w wymienionym okresie.

Przykład:

data          dostawa_malin   dostawa_truskawek   dostawa_porzeczek
01.05.2020    211             281                 88
02.05.2020    393             313                 83
03.05.2020    389             315                 104
04.05.2020    308             221                 119

Z wykorzystaniem dostępnych narzędzi informatycznych podaj odpowiedzi do poniższych zadań. Odpowiedzi zapisz w pliku wyniki5.txt, a każdą z nich poprzedź numerem odpowiedniego zadania.

Zadanie 5.1

Dla każdego miesiąca pracy przetwórni (od maja do września) wykonaj zestawienie liczby dostarczonych kilogramów malin, liczby dostarczonych kilogramów truskawek i liczby dostarczonych kilogramów porzeczek.

Na podstawie wykonanego zestawienia utwórz wykres kolumnowy. Pamiętaj o czytelnym opisie wykresu (tytuł, legenda, opisy osi: na osi X – nazwy miesięcy, na osi Y – liczba kilogramów).

Kliknij Pokaż odpowiedź, aby zobaczyć wzorcowe rozwiązanie z klucza CKE – zestawienie oraz gotowy wykres.

Zadanie 5.2

Podaj liczbę dni, w których dostarczono, spośród trzech rodzajów owoców, najwięcej porzeczek.

Odpowiedź:

Zadanie 5.3

Podaj długość najdłuższego ciągu kolejnych dni, w którym dostawy malin rosły, tzn. w każdym kolejnym dniu dostarczano więcej kilogramów malin niż w dniu poprzednim. Podaj datę, kiedy ten ciąg się rozpoczął, oraz datę, kiedy się zakończył.

Przykład:

Dla dostaw malin (w kg): 287, 287, 298, 429, 417, 384,
najdłuższy ciąg dni, w których dostawy się zwiększały, ma długość 3.

Data początku:

Data końca:

Długość ciągu (dni):

Zadanie 5.4

Informacja do zadań 5.4. i 5.5.

Przetwórnia produkuje konfitury: malinowo-truskawkowe, malinowo-porzeczkowe oraz truskawkowo-porzeczkowe (zawsze w proporcji owoców 1:1 oraz z wykorzystaniem maksymalnej dostępnej ilości owoców). Decyzja, jaka konfitura w danym dniu będzie produkowana, zależy od ilości owoców w przetwórni.

Owoce są dostarczane do przetwórni rano, przed rozpoczęciem produkcji. W danym dniu jest produkowany tylko jeden rodzaj konfitur. Do produkcji są brane owoce, których jest najwięcej w przetwórni (dla danych w pliku owoce.txt nie występuje przypadek, gdy ilość różnych owoców jest taka sama). Owoce niewykorzystane do produkcji są przechowywane w chłodni do następnego dnia. W następnym dniu podejmuje się decyzję o produkcji na ten dzień na podstawie łącznej ilości owoców pozostałych z poprzedniego dnia oraz dostarczonych rano.

Przykład:

Jeżeli 01.05.2020 dostarczono 211 kg malin, 281 kg truskawek i 88 kg porzeczek, to w tym dniu będzie produkowana konfitura malinowo-truskawkowa. Do produkcji wykorzystane zostanie 211 kg malin i 211 kg truskawek. Reszta truskawek i wszystkie porzeczki będą przechowywane w chłodni do następnego dnia.
Po dostawie z 02.05.2020 (393 kg malin, 313 kg truskawek i 83 kg porzeczek) w przetwórni będzie 393 kg malin, 383 kg truskawek i 171 kg porzeczek, czyli znowu będzie produkowana konfitura malinowo-truskawkowa.

Po uwzględnieniu opisanego powyżej cyklu produkcyjnego oraz danych zapisanych w pliku owoce.txt podaj odpowiedzi do poniższych zadań.

Podaj, ile razy, w okresie od 01.05.2020 do 30.09.2020, produkowano konfitury poszczególnych rodzajów.

Malinowo-porzeczkowe:

Malinowo-truskawkowe:

Truskawkowo-porzeczkowe:

Zadanie 5.5

Na wyprodukowanie 1 kg konfitur dwuowocowych potrzeba po 1 kg każdego owocu. Podaj, ile kilogramów konfitur każdego rodzaju wyprodukowano w okresie od 01.05.2020 do 30.09.2020.

Malinowo-porzeczkowe:

Malinowo-truskawkowe:

Truskawkowo-porzeczkowe:

07

Zadanie 6. Gry planszowe

Pewien serwis internetowy prowadzi ranking gier planszowych. Baza serwisu została zapisana w trzech plikach.

Plik gry.txt zawiera informacje o grach planszowych. W każdym wierszu zapisano:

  • id_gry – unikatowy numer gry planszowej
  • nazwa – tytuł gry planszowej
  • kategoria – kategorię, do jakiej została zakwalifikowana gra planszowa; każda gra należy tylko do jednej kategorii.

Przykład:

id_gry    nazwa                       kategoria
1         Wsiasc do Pociagu: Europa   familijna
2         Pandemia                    kooperacyjna
3         Splendor                    familijna
4         Dixit                       familijna
5         Dobble                      familijna

Plik gracze.txt zawiera informacje o graczach. W każdym wierszu zapisano:

  • id_gracza – unikatowy numer gracza
  • imie – imię gracza
  • nazwisko – nazwisko gracza
  • wiek – wiek gracza.

Przykład:

id_gracza imie         nazwisko       wiek
1         Jozef        Gorecki        29
2         Przemysław   Mazurek        68
3         Cezary       Kaczmarczyk    41
4         Kornel       Wysocki        72
5         Eustachy     Gorecki        74

Plik oceny.txt zawiera oceny wystawione grom przez poszczególnych graczy. W każdym wierszu pliku zapisano:

  • id_gry – numer gry planszowej
  • id_gracza – numer gracza
  • stan – zawiera jedną z możliwych wartości: posiada, chce kupic, sprzedal, opisującą, czy użytkownik posiada daną grę, czy ją sprzedał lub czy zamierza ją zakupić
  • ocena – zawiera ocenę gry przez gracza, wyrażoną liczbą całkowitą w zakresie od 0 do 10.

Przykład:

id_gry    id_gracza stan         ocena
66        1         posiada      8
72        1         chce kupic   3
79        1         sprzedal     8
43        2         posiada      9

We wszystkich plikach dane w wierszach są rozdzielone znakami tabulacji, a pierwszy wiersz w każdym pliku jest wierszem nagłówkowym.

Z wykorzystaniem danych zawartych w podanych plikach oraz dostępnych narzędzi informatycznych, podaj odpowiedzi do zadań 6.1.–6.5. Odpowiedzi zapisz w pliku wyniki6.txt, a każdą z nich poprzedź numerem odpowiedniego zadania.

Zadanie 6.1

Podaj tytuł gry, która otrzymała najwięcej ocen.

Odpowiedź:

Zadanie 6.2

Dla każdej gry z kategorii „imprezowa" podaj średnią jej ocen w zaokrągleniu do dwóch miejsc po przecinku.

nazwaŚrednia ocena
5 sekund
Avalone
Colt Express
Jenga
Koncept
Mamy szpiega
Przebiegle wielblady
Sushi Go
Swiatowy Konflikt
Szeryf z Nottingham

Zadanie 6.3

Podaj imiona i nazwiska graczy, którzy wystawili co najmniej jedną ocenę oraz posiadają (mają stan „posiada") tylko gry z kategorii imprezowe („imprezowa") i nie posiadają gier planszowych z innych kategorii. Wynik posortuj niemalejąco według nazwisk.

Kliknij Pokaż odpowiedź, aby zobaczyć wzorcowe rozwiązanie z klucza CKE.

Zadanie 6.4

Podaj liczbę graczy, którzy nie posiadają żadnej z ocenianych przez siebie gier (nie mają żadnej gry ze stanem „posiada"), a wystawili co najmniej jedną ocenę.

Odpowiedź:

Zadanie 6.5

W ocenianiu gier planszowych uczestniczą osoby w wieku od 10 do 99 lat. Osoby oceniające gry podzielono na trzy kategorie wiekowe: juniorzy (do 19 lat), seniorzy (od 20 do 49 lat) oraz weterani (od 50 lat).

Wykonaj zestawienie, w którym dla każdej kategorii wiekowej podasz największą liczbę ocen wystawionych jednej grze przez użytkowników z tej kategorii wiekowej oraz nazwy gier z tą liczbą ocen.

Jeżeli gier, które otrzymały taką samą największą liczbę ocen od użytkowników z danej kategorii wiekowej, jest więcej niż jedna – podaj tytuły ich wszystkich.

Kliknij Pokaż odpowiedź, aby zobaczyć wzorcowe rozwiązanie z klucza CKE.