pastebin

Paste Search Dynamic
Recent pastes
Minimum number of steps
  1. def gcd(a, b):
  2.         if b==0:
  3.                 return a
  4.         return gcd(b, a%b)
  5. def Pour(toJugCap, fromJugCap, d):
  6.         fromJug = fromJugCap
  7.         toJug = 0
  8.         step = 1
  9.         while ((fromJug is not d) and (toJug is not d)):
  10.                 temp = min(fromJug, toJugCap-toJug)
  11.                 toJug = toJug + temp
  12.                 fromJug = fromJug - temp
  13.                 step = step + 1
  14.                 if ((fromJug == d) or (toJug == d)):
  15.                         break
  16.                 if fromJug == 0:
  17.                         fromJug = fromJugCap
  18.                         step = step + 1
  19.                 if toJug == toJugCap:
  20.                         toJug = 0
  21.                         step = step + 1
  22.         return step
  23. def minSteps(n, m, d):
  24.         if m> n:
  25.                 temp = m
  26.                 m = n
  27.                 n = temp
  28.                
  29.         if (d%(gcd(n,m)) is not 0):
  30.                 return -1
  31.         return(min(Pour(n,m,d), Pour(m,n,d)))
  32. if __name__ == '__main__':
  33.         n = 3
  34.         m = 5
  35.         d = 4
  36.         print('Minimum number of steps required is',minSteps(n, m, d))
Parsed in 0.012 seconds