90 lines
3.4 KiB
Python
90 lines
3.4 KiB
Python
range_list: list[list[str]] = [['1','5'],['7','8']]
|
||
items_list: list[int] = [1,2,3,6,16]
|
||
valid_id: list[int] = []
|
||
final_range: list[list[int]] = [[0,0]]
|
||
range_new_dict: dict[int,int] = {}
|
||
result: int = 0
|
||
|
||
input = """3-6
|
||
1-10
|
||
2-2
|
||
5-5
|
||
10-14
|
||
16-20
|
||
12-18
|
||
|
||
|
||
1
|
||
5
|
||
8
|
||
11
|
||
17
|
||
32"""
|
||
|
||
# input = """515109478873629-517495683097941
|
||
# 55910578479451-59894189259887
|
||
# 388889831860114-389361546156805
|
||
# 426667061525753-431247335780190
|
||
|
||
# 163539375204061
|
||
# 531903863069312
|
||
# 34101977519160
|
||
# 164401920447043
|
||
# 5765415079155
|
||
# 235541805889895
|
||
# 241438782449974
|
||
# 228538610394597
|
||
# 557824039518207"""
|
||
|
||
with open("input.txt", "r") as file:
|
||
input = file.read()
|
||
range_list = list(map(list, [row.split("-") for row in input.split("\n\n")[0].strip().split("\n")]))
|
||
items_list = list(map(int, input.split("\n\n")[1].strip().split("\n")))
|
||
print("="*100)
|
||
print("range_list",len(range_list))
|
||
print("="*100)
|
||
# получаем все возможные не "протухшие" id продуктов
|
||
# for index,i in enumerate(items_list):
|
||
# for element in range_list:
|
||
# if i >= int(element[0]) and i <= int(element[1]):
|
||
# valid_id.append(i)
|
||
low_list, high_list = [], []
|
||
for item in range_list:
|
||
low_list.append(int(item[0]))
|
||
high_list.append(int(item[1]))
|
||
<<<<<<< HEAD
|
||
|
||
range_new_dict: list[int:int] = []
|
||
for low,high in zip(low_list, high_list):
|
||
range_new_dict.append([int(low),int(high)])
|
||
range_new_dict = sorted(range_new_dict, key=lambda x: x[1], reverse=True)
|
||
final_range = [range_new_dict[0]]
|
||
# for i in range_new_dict:
|
||
# print(i)
|
||
|
||
for d in range(1,int(len(range_new_dict))):
|
||
print("Обрабатываем пару\n",range_new_dict[d][0],range_new_dict[d][1])
|
||
if final_range[-1][0] <= range_new_dict[d][1] <= final_range[-1][1]: #and range_new_dict[d][0] <= final_range[-1][0]:
|
||
# print(f"УСЛОВИЕ\n{str(final_range[-1][0])} <= {range_new_dict[d][1]} <= {str(final_range[-1][1])} and {str(range_new_dict[d][0])} <= {str(final_range[-1][0])}")
|
||
final_range[-1][0]= range_new_dict[d][0]
|
||
final_range[-1][1]= final_range[-1][1]
|
||
# print(f"Изменили последний в списке\n{str(final_range[-1])}")
|
||
elif final_range[-1][0] > range_new_dict[d][1] < final_range[-1][1] and range_new_dict[d][0] < final_range[-1][0]:
|
||
# print(f"УСЛОВИЕ\n{str(final_range[-1][0])} > {range_new_dict[d][1]} < {str(final_range[-1][1])} and {str(range_new_dict[d][0])} < {str(final_range[-1][0])}")
|
||
final_range.append([range_new_dict[d][0],range_new_dict[d][1]])
|
||
# print(f"Добавили новы элемент в список\n{str(final_range[-1])}")
|
||
elif final_range[-1][0] < range_new_dict[d][1] < final_range[-1][1] and range_new_dict[d][0] > final_range[-1][0]:
|
||
# print(f"УСЛОВИЕ\n{str(final_range[-1][0])} < {range_new_dict[d][1]} < {str(final_range[-1][1])} and {str(range_new_dict[d][0])} > {str(final_range[-1][0])}")
|
||
# print(f"Проигнорировали\n{str(final_range[-1])}")
|
||
pass
|
||
else:
|
||
print(f"УСЛОВИЕ\n{str(final_range[-1][0])} ? {range_new_dict[d][1]} ? {str(final_range[-1][1])} and {str(range_new_dict[d][0])} ? {str(final_range[-1][0])}")
|
||
print("НЕ поймади!!!!!!!!!!!!\n",range_new_dict[d][0],range_new_dict[d][1],"\n",str(final_range[-1]))
|
||
pass
|
||
# print(len(final_range))
|
||
result: int = 0
|
||
for item in final_range:
|
||
print(item[1] - item[0] + 1)
|
||
result += item[1] - item[0] + 1
|
||
# print(result)
|
||
print(final_range) |