jnxfzybt
This commit is contained in:
@@ -1,9 +1,13 @@
|
||||
range_list: list[list:[str]] = [['1','5'],['7','8']]
|
||||
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]]
|
||||
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
|
||||
@@ -31,10 +35,13 @@ 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")))
|
||||
print("="*100)
|
||||
print("range_list",len(range_list))
|
||||
print("="*100)
|
||||
# получаем все возможные не "протухшие" id продуктов
|
||||
# for index,i in enumerate(items_list):
|
||||
# for element in range_list:
|
||||
@@ -45,29 +52,51 @@ for item in range_list:
|
||||
low_list.append(int(item[0]))
|
||||
high_list.append(int(item[1]))
|
||||
|
||||
range_new_dict: dict[int,int] = {}
|
||||
print("="*100)
|
||||
print("high_list",len(high_list))
|
||||
for i in high_list:
|
||||
print(i)
|
||||
print("="*100)
|
||||
for low,high in zip(low_list, high_list):
|
||||
range_new_dict[int(high)] = int(low)
|
||||
print("="*100)
|
||||
print("range_new_dict",len(range_new_dict))
|
||||
for key, value in range_new_dict.items():
|
||||
print(f"{key}: {value}")
|
||||
print("="*100)
|
||||
high_list = sorted(high_list, reverse=True)
|
||||
final_range = [[0,high_list[0]]]
|
||||
for d in high_list:
|
||||
final_range = [[range_new_dict[high_list[0]],high_list[0]]]
|
||||
print("BEGIN")
|
||||
# print(f"{str(final_range[-1])}")
|
||||
|
||||
if d >= final_range[-1][0] and d != range_new_dict[d]:
|
||||
for d in high_list[1:]:
|
||||
# print("Обрабатываем пару\n",range_new_dict[d],d)
|
||||
if final_range[-1][0] <= d <= final_range[-1][1] and range_new_dict[d] <= final_range[-1][0]:
|
||||
# print(f"УСЛОВИЕ\n{str(final_range[-1][0])} <= {d} <= {str(final_range[-1][1])} and {str(range_new_dict[d])} <= {str(final_range[-1][0])}")
|
||||
final_range[-1][0]= range_new_dict[d]
|
||||
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] > d < final_range[-1][1] and range_new_dict[d] < final_range[-1][0]:
|
||||
# print(f"УСЛОВИЕ\n{str(final_range[-1][0])} > {d} < {str(final_range[-1][1])} and {str(range_new_dict[d])} < {str(final_range[-1][0])}")
|
||||
final_range.append([range_new_dict[d],d])
|
||||
# print(f"Добавили новы элемент в список\n{str(final_range[-1])}")
|
||||
elif final_range[-1][0] < d < final_range[-1][1] and range_new_dict[d] > final_range[-1][0]:
|
||||
# print(f"УСЛОВИЕ\n{str(final_range[-1][0])} < {d} < {str(final_range[-1][1])} and {str(range_new_dict[d])} > {str(final_range[-1][0])}")
|
||||
# print(f"Проигнорировали\n{str(final_range[-1])}")
|
||||
pass
|
||||
else:
|
||||
print("bang!")
|
||||
final_range.append([range_new_dict[d],d])
|
||||
result: int = 0
|
||||
for item in final_range:
|
||||
print(item)
|
||||
result += item[1] - item[0] + 1
|
||||
# print(result)
|
||||
# print(f"УСЛОВИЕ\n{str(final_range[-1][0])} ? {d} ? {str(final_range[-1][1])} and {str(range_new_dict[d])} ? {str(final_range[-1][0])}")
|
||||
# print("НЕ поймади!!!!!!!!!!!!\n",range_new_dict[d],d,"\n",str(final_range[-1]))
|
||||
pass
|
||||
# print("="*100)
|
||||
# print(final_range)
|
||||
# print("="*100)
|
||||
|
||||
for item in final_range:
|
||||
# print(item[1] - item[0] + 1)
|
||||
result += item[1] - item[0] + 1
|
||||
|
||||
print("final_range",len(final_range))
|
||||
print("range_new_dict",len(range_new_dict))
|
||||
print("result",result)
|
||||
# print("Всего найденно",len(set(valid_id)))
|
||||
Reference in New Issue
Block a user