Advertisement
jbn6972

pagehopping

Oct 17th, 2021
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.23 KB | None | 0 0
  1. import sys
  2. import os
  3. if not os.environ.get("ONLINE_JUDGE"):
  4.     sys.stdin = open('./in.txt', 'r')
  5.     sys.stdout = open('./out.txt', 'w')
  6.  
  7. inf = sys.maxsize
  8. test = 1
  9. while True:
  10.     values = list(map(int,input().split()))
  11.     values = values[:-2]
  12.     dist = [[inf for _ in range(101)] for _ in range(101)]
  13.  
  14.     for i in range(101):
  15.         dist[i][i] = 0
  16.  
  17.     if values.count(0) == len(values):
  18.         break
  19.    
  20.     # print(values)
  21.     vertex = []
  22.     i,j = 0,1
  23.     while j < len(values):
  24.         u = values[i]
  25.         v = values[j]
  26.         vertex.append(u)
  27.         vertex.append(v)
  28.         dist[u][v] = 1
  29.         i += 2
  30.         j += 2
  31.    
  32.     vertex = set(vertex)
  33.  
  34.     for k in range(101):
  35.         for i in range(101):
  36.             for j in range(101):
  37.                 if dist[i][j] > dist[i][k] + dist[k][j]:
  38.                     dist[i][j] = dist[i][k]+dist[k][j]
  39.  
  40.     sum = 0
  41.     for i in range(101):
  42.         for j in range(101):
  43.             if dist[i][j] != inf:
  44.                 sum += dist[i][j]
  45.    
  46.     # print(sum)
  47.     avg = sum / (len(vertex)* (len(vertex)-1))
  48.     # print(avg)
  49.  
  50.     print(f"Case {test}: average length between pages = ",end="")
  51.     print("{0:.3f}".format(avg))
  52.     test += 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement