#!/usr/bin/env python3 from dataclasses import dataclass import re import sys @dataclass class Range: target: int source: int length: int @dataclass class SR: source: int length: int def findmapping(sr,tables): if len(tables) == 0: return table = tables.pop(0) for row in table: if sr.source > row. print(sr) with open("data.txt") as file: lines = [line.rstrip() for line in file] tables = [] table = [] seeds = [] seedranges = [] for line in lines: if line == '': print('Tühi rida') continue if line.startswith("seeds: "): temp = re.findall(r'\d+', line) seeds = list(map(int, temp)) print(len(seeds)) for i in range(0, int(len(seeds)/2)): seedranges.append(SR(seeds[i*2], seeds[i*2+1])) print(seedranges) continue if line[0].isalpha(): if len(table) > 0: tables.append(table) table = [] continue temp = re.findall(r'\d+', line) tableitems = list(map(int, temp)) table.append(Range(*tableitems)) tables.append(table) for table in tables: print("tabel") for rida in table: print(rida) pisim = 0 for sr in seedranges: findmapping(sr,tables) for table in tables: muudetud = False print("tabel") for mapping in table: if arv >= mapping.source and arv < (mapping.source + mapping.length): print(mapping) arv = mapping.target + (arv - mapping.source) print(f"Uus arv: {arv}") break print(f"Vastus: {arv}") if pisim == 0: pisim = arv if pisim > arv: pisim = arv print(pisim)