Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- raw, lengths, minimal = list(open('/p082_matrix.txt')), [], 10**10
- for a in raw:
- a.rstrip('\n')
- tempString = ""
- for b in a:
- if b == ",":
- lengths.append(int(tempString))
- tempString = ""
- continue
- tempString += b
- lengths.append(int(tempString))
- for c in range(80):
- visited, shortTrack, shortSaved = [], [10**10]*(80*c) + [lengths[c*80]] + [10**10]*(80*(80 - c) - 1), \
- [10**10]*(80*c) + [lengths[c*80]] + [10**10]*(80*(80 - c) - 1)
- while len(visited) != 6400:
- start = shortTrack.index(min(shortTrack))
- try:
- if start % 80 != 79 and start + 1 not in visited:
- if shortSaved[start] + lengths[start + 1] < shortSaved[start + 1]:
- shortSaved[start + 1] = shortSaved[start] + lengths[start + 1]
- shortTrack[start + 1] = shortSaved[start] + lengths[start + 1]
- except IndexError:
- pass
- try:
- if start <= 80**2 - 81 and start + 80 not in visited:
- if shortSaved[start] + lengths[start + 80] < shortSaved[start + 80]:
- shortSaved[start + 80] = shortSaved[start] + lengths[start + 80]
- shortTrack[start + 80] = shortSaved[start] + lengths[start + 80]
- except IndexError:
- pass
- try:
- if start > 79 and start - 80 not in visited:
- if shortSaved[start] + lengths[start - 80] < shortSaved[start - 80]:
- shortSaved[start - 80] = shortSaved[start] + lengths[start - 80]
- shortTrack[start - 80] = shortSaved[start] + lengths[start - 80]
- except IndexError:
- pass
- if start not in visited:
- visited.append(start)
- shortTrack[start] = 10**10
- for d in shortSaved:
- if shortSaved.index(d) % 80 == 79 and d < minimal:
- minimal = d
- print(minimal)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement