m Matura-Online.pl Rozwiązania zadań maturalnych
MINP-R0-100-2605 Otwarte rozszerzone 8 pkt Trudność: ★★★★★

Zadanie 4

Matura z informatyki, maj 2026, poziom rozszerzony

Wymaganie:

I.4) dobiera odpowiednią metodę lub technikę algorytmiczną i struktury danych. P.I.3) sprawdza poprawność działania algorytmów. P.II.1) projektuje i programuje rozwiązania problemów z różnych dziedzin.

Treść zadania

Zadanie 4. Korporacja. W korporacji pracuje n osób o numerach 1…n. Pracownik 1 to prezes, każdy inny ma dokładnie jednego bezpośredniego przełożonego, którego numer jest zawsze mniejszy od jego własnego. Przełożonym pracownika jest jego bezpośredni przełożony i wszyscy przełożeni tego przełożonego.

4.1. (0–1) Dla przykładowej hierarchii z Rysunku 1. określ, ilu każdy pracownik ma bezpośrednich podwładnych i ilu wszystkich.

Plik korpo.txt zawiera n = 50 000 liczb: w pierwszym wierszu 0 (prezes), w i-tym wierszu numer bezpośredniego przełożonego pracownika i.

4.2. (0–2) Podaj, ilu pracowników nie jest przełożonym żadnego pracownika.

4.3. (0–2) Podaj, który pracownik ma najwięcej bezpośrednich podwładnych — numer i liczbę.

4.4. (0–3) Policz, ilu najwięcej przełożonych ma jeden pracownik. Podaj tę liczbę oraz ilu pracowników ma taką liczbę przełożonych.

Źródło: arkusz CKE MINP-R0-100-2605. Otwórz oryginalny PDF

Rozwiązanie

4.1. Dla hierarchii z Rysunku 1.:

Pracownik Bezpośredni podwładni Wszyscy podwładni
1 2 7
2 3 4
3 1 1
4 1 1
5 0 0
6 0 0
7 0 0
8 0 0

4.2. 25 113

4.3. 2 19 — pracownik numer 2 ma 19 bezpośrednich podwładnych.

4.4. 22 2 — największa liczba przełożonych to 22, a takich pracowników jest 2.

Typowy błąd / pułapka

Warunek „numer przełożonego jest zawsze mniejszy" to nie ozdobnik — to klucz do wydajności. Dzięki niemu można policzyć liczbę przełożonych jednym przebiegiem od 1 do n, bo przetwarzając pracownika i, jego przełożony jest już policzony:

przelozonych[i] = przelozonych[przel[i]] + 1

Bez tej obserwacji naturalne jest wspinanie się po drzewie dla każdego pracownika osobno — to działa, ale przy 50 000 pracowników i głębokim drzewie robi się kwadratowo wolne.

4.2 — „nie jest przełożonym żadnego pracownika" to liście drzewa, czyli pracownicy o zerowej liczbie bezpośrednich podwładnych. Nie mylić z „nie ma przełożonego" — taki jest tylko jeden, prezes.

4.4 — pytanie jest o przełożonych, nie podwładnych, i o wszystkich, nie bezpośrednich. To po prostu głębokość pracownika w drzewie. Odpowiedź ma dwie liczby: maksymalną głębokość i liczbę pracowników na tej głębokości.

W 4.1 kolumny łatwo pomylić. „Wszyscy podwładni" liczy całe poddrzewo, nie tylko dzieci — pracownik 2 ma 3 bezpośrednich (3, 5, 6), ale 4 wszystkich (dochodzi 7).

Treść zadania (CKE)

Zadanie 4 — informatyka 2026, poziom rozszerzony, arkusz CKE
Fragment arkusza CKE MINP-R0-100-A-2605 — zadanie 4. Na podstawie: CKE, matura maj 2026, informatyka PR Oryginalny PDF CKE

Struktura danych — to jest drzewo

Hierarchia korporacji to drzewo ukorzenione w prezesie:

  • każdy wierzchołek poza korzeniem ma dokładnie jednego rodzica (przełożonego),
  • „wszyscy podwładni” = rozmiar poddrzewa minus sam wierzchołek,
  • „wszyscy przełożeni” = głębokość wierzchołka.

Plik korpo.txt to zapis tablicy rodziców: przel[i] w i-tym wierszu.

Rozwiązania wszystkich podpunktów

przel = [int(x) for x in open('korpo.txt')]
n = len(przel)                       # przel[0] dotyczy pracownika 1

# 4.2 — liczba liści
bezposredni = [0] * (n + 1)
for i in range(2, n + 1):
    bezposredni[przel[i - 1]] += 1
print('4.2', sum(1 for i in range(1, n + 1) if bezposredni[i] == 0))

# 4.3 — najwięcej bezpośrednich podwładnych
naj = max(range(1, n + 1), key=lambda i: bezposredni[i])
print('4.3', naj, bezposredni[naj])

# 4.4 — największa liczba przełożonych (głębokość)
glebokosc = [0] * (n + 1)
for i in range(2, n + 1):            # numer przełożonego < i, więc jest już policzony
    glebokosc[i] = glebokosc[przel[i - 1]] + 1
m = max(glebokosc[1:])
print('4.4', m, glebokosc.count(m))

Wszystko w jednym przebiegu po tablicy — złożoność O(n).

Dlaczego kolejność numerów ma znaczenie

Gdyby przełożony mógł mieć numer większy od podwładnego, tablicy głębokości nie dałoby się wypełnić prostą pętlą rosnącą — trzeba by przejść drzewo w porządku BFS/DFS od korzenia. Zadanie celowo daje tę gwarancję, żeby rozwiązanie mieściło się w jednej pętli.

Punktacja CKE

  • 4.1. 1 pkt · 4.2. 2 pkt · 4.3. 2 pkt · 4.4. 3 pkt.
  • Razem: 8 pkt.

Rozumiesz, jak to rozwiązać?

Przećwicz podobne typy zadań w aplikacji

matury-online.pl ma tysiące zadań pogrupowanych po dziedzinach. Sprawdź, czy temat „drzewo, hierarchia, przetwarzanie pliku, zliczanie podwladnych" zrobisz samodzielnie.

Otwórz matury-online.pl