ОНО РАБОТАЕТ

This commit is contained in:
2025-12-05 21:32:51 +03:00
parent ec30800900
commit dc0fb5a1d1
2 changed files with 224 additions and 115 deletions

View File

@@ -4,11 +4,14 @@ valid_id: list[int] = []
final_range: list[list:[int]] = [[0,0]]
input = """3-6
1-10
2-2
5-5
10-14
16-20
12-18
1
5
8
@@ -31,8 +34,8 @@ input = """3-6
# 228538610394597
# 557824039518207"""
# with open("input.txt", "r") as file:
# input = file.read()
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")))
# получаем все возможные не "протухшие" id продуктов
@@ -44,30 +47,40 @@ low_list, high_list = [], []
for item in range_list:
low_list.append(int(item[0]))
high_list.append(int(item[1]))
range_new_dict: dict[int:int] = {}
range_new_dict: list[int:int] = []
for low,high in zip(low_list, high_list):
range_new_dict[int(high)] = int(low)
high_list = sorted(high_list, reverse=True)
final_range = [[0,high_list[0]]]
for d in 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)
if d >= final_range[-1][0] and d != range_new_dict[d]:
final_range[-1][0]= range_new_dict[d]
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("занесли изменения")
# elif d == range_new_dict[d] and final_range[-1][1] < d:
if d > final_range[-1][0] and d == range_new_dict[d]:
print("pass!!!")
# 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("bang!")
final_range.append([range_new_dict[d],d])
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)
print(item[1] - item[0] + 1)
result += item[1] - item[0] + 1
# print(result)
print(final_range)
print("result",result)
# print("Всего найденно",len(set(valid_id)))
# # print("Всего найденно",len(set(valid_id)))