# input = "3285251637222363222472154314252527157326423323532213732223724533233636375713623545544337332247253314" # input = """987654321111111 # 811111111111119 # 234234234234278 # 818181911112111""" result = 0 with open("input.txt", "r") as file: input = file.read() def cruncher(block: str, minimum: int): print(minimum,block," len",len(block)) for i in range(9, 0, -1): print("i -", i) print("сколько",i,"в блоке",block.count(str(i))) if block.count(str(i)) != 0: result = block[block.index(str(i))+1:] print(result," len ", len(result)) if len(result)+1 >= minimum and minimum != 1: print(result,"первый выход") return[i,result] elif minimum == 1: print(result," последний шанс") return [i, i] else: print(f"остаток с права от {i} слишком мал") pass else: print(f"в блоке нету {i}") pass # не нашли это число for block in input.splitlines(): print(f"block: {block}") semiresult = "" reminder = block while len(semiresult) != 12: result_list = cruncher(reminder, 12 - len(semiresult)) if result_list: semiresult += str(result_list[0]) reminder = result_list[1] else: print("кранчер не вернул результата") break print(semiresult,"len",len(semiresult)) print("="*100) print(semiresult,"len",len(semiresult)) result += int(semiresult) print(f"result - {result}")