4.2 Ciąg prostokątów w pliku przykładowym

Matura próbna grudzień 2024 - Matura z informatyki: arkusze krok po kroku (Python)

Zadanie 4.2 (2 pkt): najdłuższy ciąg kolejnych prostokątów, w którym każdy (poza pierwszym) mieści się w poprzednim: \( s \le s' \) i \( h \le h' \). To ta sama metoda co najdłuższy ciąg rosnący: licznik rośnie, gdy warunek zachodzi, a wraca do 1, gdy nie. Prostokąt 1 jest zawsze ciągiem jednoelementowym. Dla pliku przykładowego: 4 83 5 (długość, wysokość i szerokość ostatniego).

rectangles = []
with open("prostokaty_przyklad.txt") as f:
    for line in f:
        h, s = line.split()  # wysokość, szerokość
        rectangles.append((int(h), int(s)))

# 4.2 prostokąt mieści się w poprzednim, gdy żaden wymiar nie jest większy
best, length, last = 1, 1, rectangles[0]
for i in range(1, len(rectangles)):
    h, s = rectangles[i]
    ph, ps = rectangles[i - 1]
    if h <= ph and s <= ps:
        length = length + 1  # ciąg trwa
    else:
        length = 1  # nowy ciąg zaczyna się od tego prostokąta
    if length > best:
        best, last = length, rectangles[i]

print("4.2", best, *last)

Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.

Wszystkie lekcje kursu Matura z informatyki: arkusze krok po kroku·Zaloguj się, aby zapisać postęp na koncie.