28 lines
694 B
Python
28 lines
694 B
Python
import bisect
|
|
|
|
count = 0
|
|
|
|
intervals = []
|
|
|
|
with open("input.txt" , "r") as file:
|
|
for line in file:
|
|
line = line.strip()
|
|
if line == "":
|
|
break
|
|
start, end = map(int, line.split("-"))
|
|
intervals.append((start, end))
|
|
|
|
intervals.sort(key = lambda x: x[0])
|
|
merged = [intervals[0]]
|
|
|
|
for current_start, current_end in intervals[1:]:
|
|
last_start, last_end = merged[-1]
|
|
if current_start <= last_end:
|
|
merged[-1] = (last_start, max(last_end, current_end))
|
|
else:
|
|
merged.append((current_start, current_end))
|
|
|
|
for interval in merged:
|
|
count += interval[1] - interval[0] + 1
|
|
|
|
print(count) |