Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from sys import stdin, stderr
- def beste_sti(nm, sans):
- # SKRIV DIN KODE HER
- n = len(sans)
- ferdig = [False]*n
- sumsanns = [0.0]*n
- sumsanns[0] = sans[0]
- forrige = range(n)
- beste_node = 0
- for i in range(n):
- node = beste_node
- ferdig[node] = True
- storstsanns = -1.0
- for nabo in range(n):
- if not ferdig[nabo]:
- if nm[node][nabo]:
- tilbud = sumsanns[node] * sans[nabo]
- if tilbud > sumsanns[nabo]:
- forrige[nabo] = node
- sumsanns[nabo] = tilbud
- naboteller = nabo
- if sumsanns[nabo] > storstsanns:
- beste_node = nabo
- storstsanns = sumsanns[nabo]
- if (sumsanns[-1] == 0.0):
- return '0'
- index = n-1
- vei = []
- while index != 0:
- vei.append(index)
- index = forrige[index]
- vei.append(0)
- return '-'.join(map(str,reversed(vei)))
- n = int(stdin.readline())
- sannsynligheter = [float(x) for x in stdin.readline().split()]
- nabomatrise = []
- for linje in stdin:
- naborad = [0] * n
- naboer = [int(nabo) for nabo in linje.split()]
- for nabo in naboer:
- naborad[nabo] = 1
- nabomatrise.append(naborad)
- print beste_sti(nabomatrise, sannsynligheter)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement