Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- raw = list(open('/p081_matrix.txt'))
- visited, shortTrack, lengths, shortSaved = [], [4445] + [10**10]*(80**2-1), [], [4445] + [10**10]*(80**2-1)
- 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))
- 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
- visited.append(start)
- shortTrack[start] = 10**10
- print(shortSaved[80**2-1])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement