Advertisement
Guest User

Untitled

a guest
Dec 12th, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.35 KB | None | 0 0
  1. def computestep(lp,lv):
  2.     for i in range(4):
  3.         for j in range(4):
  4.             if i == j:
  5.                 continue
  6.             if lp[i] < lp[j]:
  7.                 lv[i] += 1
  8.             elif lp[i] > lp[j]:    
  9.                 lv[i] -= 1
  10.  
  11.     for i in range(4):
  12.         lp[i] += lv[i]
  13.     return lp, lv
  14.  
  15. def gcd(a,b):
  16.     return gcd(b, a%b) if b else a or 1
  17.    
  18. def lcm(a, b):
  19.     return a * b // gcd(a, b)
  20.  
  21. xp = list()
  22. yp = list()
  23. zp = list()
  24. xv = list()
  25. yv = list()
  26. zv = list()
  27.  
  28. with open('inputs.txt') as f:
  29.     for line in f.readlines():
  30.         line = line.replace('<','').replace('>','').strip()
  31.         x,y,z = line.split(',')
  32.         x = int(x.split('=')[1])
  33.         y = int(y.split('=')[1])
  34.         z = int(z.split('=')[1])
  35.         xp.append(x)
  36.         yp.append(y)
  37.         zp.append(z)
  38.         xv.append(0)
  39.         yv.append(0)
  40.         zv.append(0)
  41.  
  42.  
  43. xpi = xp[:]
  44. xvi = xv[:]
  45. ypi = yp[:]
  46. yvi = yv[:]
  47. zpi = zp[:]
  48. zvi = zv[:]
  49.  
  50. xp, xv = computestep(xp, xv)
  51. yp, yv = computestep(yp, yv)
  52. zp, zv = computestep(zp, zv)
  53.  
  54. xr = 1
  55. yr = 1
  56. zr = 1
  57.  
  58. while xpi != xp or xvi != xv:
  59.     xp, xv = computestep(xp, xv)
  60.     xr += 1
  61. while ypi != yp or yvi != yv:
  62.     yp, yv = computestep(yp, yv)
  63.     yr += 1
  64. while zpi != zp or zvi != zv:
  65.     zp, zv = computestep(zp, zv)
  66.     zr += 1
  67.  
  68. print(xr,yr,zr)
  69. print(lcm(xr, lcm(yr,zr)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement