from io import open # We open the txt document containing the games input=open('input.txt','r') # We read the text inside distinguishing by lines lines=input.read().split('\n\n') # Close the txt file to be able to work on the text without having the file open. input.close() del(input) # Tratamiento del fichero para poder obtener los nĂºmeros con los que trabajar names=[] list_numbers=[] numbers=[] almanac=[] for index,line in enumerate(lines): components=line.split(':') names.append(components[0]) numbers.append(components[1]) for index,element in enumerate(numbers): if index==0: numbers_str=numbers[index].split() numbers_int=[int(numero) for numero in numbers_str] list_numbers.append(numbers_int) else: numbers_str=numbers[index].split() numbers_int=[int(numero) for numero in numbers_str] list=[] for indice,element in enumerate(numbers_int): for i in range(-1,len(numbers_int),3): if indice==i: list.append([numbers_int[indice-2],numbers_int[indice-1],numbers_int[indice]]) list_numbers.append(list) # Se recoge en la variable names[] el nombre de los destinos y origenes y en list_numbers los nĂºmeros de origen location=[] for seed,number in enumerate(list_numbers[0]): for i in range(1,len(names)): a=False for x in range(len(list_numbers[i])): destination_range_start=list_numbers[i][x][0] source_range_start=list_numbers[i][x][1] range_length=list_numbers[i][x][2] if number in range(source_range_start,source_range_start+range_length) and a==False: number=(number-source_range_start)+destination_range_start a=True else: number=number location.append(number) if i==len(names)-1: almanac=min(location) print(almanac)