62 lines
1.3 KiB
Python
62 lines
1.3 KiB
Python
|
#!/bin/python3
|
||
|
|
||
|
import sys
|
||
|
from pprint import pprint
|
||
|
from aocd import get_data
|
||
|
|
||
|
|
||
|
input_f = sys.argv[1]
|
||
|
|
||
|
seeds, *maps = open(input_f).read().split('\n\n')
|
||
|
|
||
|
seeds = seeds.split(':')[1].split()
|
||
|
|
||
|
pprint(seeds)
|
||
|
pprint(maps)
|
||
|
|
||
|
nseeds = []
|
||
|
|
||
|
for i in range(1000000,3000000):
|
||
|
nseeds.append(i)
|
||
|
|
||
|
seeds = nseeds
|
||
|
|
||
|
for idx,i in enumerate(maps):
|
||
|
tmp = []
|
||
|
i = i.split()
|
||
|
#print(i)
|
||
|
|
||
|
for ldx,l in enumerate(seeds):
|
||
|
print(l,idx)
|
||
|
l = int(l)
|
||
|
for x in range(2,len(i)-2,3):
|
||
|
d = int(i[x])
|
||
|
s = int(i[x+1])
|
||
|
r = int(i[x+2])
|
||
|
#print('Looking for ' + str(l) + ' in range ' + str(s) + ' > ' + str((s+r)),end='')
|
||
|
if s <= l and l < s + r:
|
||
|
seeds[ldx] = d + (l - s)
|
||
|
#print('. Found!')
|
||
|
break
|
||
|
#print()
|
||
|
#print(seeds)
|
||
|
|
||
|
checked = []
|
||
|
|
||
|
#for idx,i in enumerate(seeds):
|
||
|
# if seeds[idx] != nseeds[idx]:
|
||
|
# checked.append(seeds[idx])
|
||
|
|
||
|
print(min(seeds))
|
||
|
"""
|
||
|
for i in range(0,7):
|
||
|
tmp = []
|
||
|
for j in range(2,len(nmaps[i]),3):
|
||
|
print("des " + str(nmaps[i][j]))
|
||
|
print("src " + str(nmaps[i][j+1]))
|
||
|
print("rng " + str(nmaps[i][j+2]))
|
||
|
for x in range(int(nmaps[i][j]),int(nmaps[i][j])+int(nmaps[i][j+2])):
|
||
|
print(x)
|
||
|
|
||
|
"""
|