Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2014
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.15 KB | None | 0 0
  1. from sys import stdin, stderr
  2.  
  3. def beste_sti(nm, sans):
  4. # SKRIV DIN KODE HER
  5. n = len(sans)
  6. ferdig = [False]*n
  7. sumsanns = [0.0]*n
  8. sumsanns[0] = sans[0]
  9. forrige = range(n)
  10. beste_node = 0
  11.  
  12. for i in range(n):
  13. node = beste_node
  14. ferdig[node] = True
  15. storstsanns = -1.0
  16. for nabo in range(n):
  17. if not ferdig[nabo]:
  18. if nm[node][nabo]:
  19. tilbud = sumsanns[node] * sans[nabo]
  20. if tilbud > sumsanns[nabo]:
  21. forrige[nabo] = node
  22. sumsanns[nabo] = tilbud
  23. naboteller = nabo
  24. if sumsanns[nabo] > storstsanns:
  25. beste_node = nabo
  26. storstsanns = sumsanns[nabo]
  27.  
  28. if (sumsanns[-1] == 0.0):
  29. return '0'
  30. index = n-1
  31. vei = []
  32. while index != 0:
  33. vei.append(index)
  34. index = forrige[index]
  35. vei.append(0)
  36. return '-'.join(map(str,reversed(vei)))
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44. n = int(stdin.readline())
  45. sannsynligheter = [float(x) for x in stdin.readline().split()]
  46. nabomatrise = []
  47. for linje in stdin:
  48. naborad = [0] * n
  49. naboer = [int(nabo) for nabo in linje.split()]
  50. for nabo in naboer:
  51. naborad[nabo] = 1
  52. nabomatrise.append(naborad)
  53. print beste_sti(nabomatrise, sannsynligheter)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement