2025-12-05 14:03:39 -06:00

44 lines
1.1 KiB
Python

INPUT_FILE = "test.txt"
fresh_ranges: list = []
fresh_ids: set[int] = set()
# Parse data
with open(INPUT_FILE, 'r') as file:
data: str = file.read()
ranges, ids = data.split("\n\n")
for r in ranges.split("\n"):
n1, n2 = r.strip().split('-')
fresh_ranges.append(range(int(n1), int(n2)))
total_fresh_ids = 0
fresh_ranges_buffer = fresh_ranges.copy()
# Filter out overlaps
for fresh_range1 in fresh_ranges:
for fresh_range2 in fresh_ranges:
if fresh_range1 == fresh_range2:
continue
if fresh_range2.start in fresh_range1 or fresh_range2.stop in fresh_range1:
print(f'{fresh_range2} in {fresh_range1}')
if fresh_range2.start in fresh_range1 and fresh_range2.stop > fresh_range1.stop:
fresh_ranges_buffer.remove(fresh_range2)
total_fresh_ids += fresh_range2.stop - fresh_range1.start
new_range = range(fresh_range1.stop, fresh_range2.stop)
fresh_ranges_buffer.append(new_range)
total = 0
# sum ranges
for r in fresh_ranges_buffer:
print(r)
total += len(fresh_ranges_buffer) + 1
print(f'Fresh Ingredients: {total}')