4.3 Sklejanie prostokątów w pliku przykładowym
Matura próbna grudzień 2024 - Matura z informatyki: arkusze krok po kroku (Python)
Zadanie 4.3 (4 pkt): największa szerokość po sklejeniu dokładnie 2, 3 i 5 prostokątów o tej samej wysokości. Najpierw słownik: wysokość -> lista szerokości, potem w każdej grupie z co najmniej \( k \) prostokątami suma \( k \) największych szerokości. Dla pliku przykładowego: 183, 266 i 409.
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.3 sklejać można tylko prostokąty o tej samej wysokości: szerokości grupowane po wysokości
widths = {}
for h, s in rectangles:
if h not in widths:
widths[h] = []
widths[h].append(s)
glued = {}
for k in (2, 3, 5):
glued[k] = 0
for h, row in widths.items():
if len(row) >= k:
top = sum(sorted(row, reverse=True)[:k]) # k najszerszych tej wysokości
glued[k] = max(glued[k], top)
print("4.3")
for k in (2, 3, 5):
print(k, glued[k])Ł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.