# 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