挤牛奶
区间合并:
(写的有丢丢乱T_T)
from typing import List
def merge(intervals: List[List[int]]) -> List[List[int]]:
# 按照第一个元素从小到大进行排序
intervals.sort(key=lambda x: x[0])
# 初始化一个新的数组
new_list = list()
for i in intervals:
# 把第一个数组元素添加到新的数组
if not new_list:
new_list.append(i)
continue
# 如果有重合 就合并
if new_list[-1][1] >= i[0]:
x = max(new_list[-1][1], i[1])
new_list[-1][1] = max(new_list[-1][1], i[1])
# 如果没有重合 就直接添加到新的数组
else:
new_list.append(i)
return new_list
N=int(input())
a = []
for _ in range(N):
a.append(list(map(int,input().split())))
new_a = merge(a)
if len(new_a)<=1:
print(new_a[0][1]-new_a[0][0],0)
else:
maxcon = new_a[0][1] - new_a[0][0]
maxempty = new_a[1][0] - new_a[0][1]
for i in range(len(new_a) - 1):
maxcon = max(maxcon, new_a[i + 1][1] - new_a[i + 1][0])
maxempty = max(maxempty, new_a[i + 1][0] - new_a[i][1])
print(maxcon,maxempty)