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.