Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- def fill1():
- return(capacity1)
- def fill2():
- return(capacity2)
- def transfer_to1():
- if (result2 > (capacity1 - result1)):
- return(capacity1, result2 - (capacity1 - result1))
- else:
- return(result1 + result2, 0)
- def transfer_to2():
- if result1 > capacity2 - result2:
- return (result1 - (capacity2 - result2), capacity2)
- else:
- return (0, result1 + result2)
- def empty1():
- return(0)
- def empty2():
- return(0)
- result1 = 0
- result2 = 0
- capacity1 = int(input("Введите вместимость первого кувшина в литрах: "))
- capacity2 = int(input("Введите вместимость второго кувшина в литрах: "))
- volume = int(input("Введите объём воды, который требуется получить: "))
- if (capacity1 < capacity2):
- if (((capacity2 % capacity1) == 0) and ((volume % capacity1) != 0)):
- print("Для входных данных задачу решить невомзожно")
- raise SystemExit(0)
- else:pass
- elif (capacity1 > capacity2):
- if (((capacity1 % capacity2) == 0) and ((volume % capacity2) != 0)):
- print("Для входных данных задачу решить невомзожно")
- raise SystemExit(0)
- else:pass
- else:pass
- if ((volume > (capacity1 + capacity2))
- or (((capacity1 % 2) == 0) and ((capacity2 % 2) == 0) and ((volume % 2) == 1))
- or ((capacity1 == capacity2) and (volume != capacity1) and (volume != (capacity1 + capacity2)))
- or (((capacity1 % 5) == 0) and ((capacity2 % 5) == 0) and ((volume % 5) != 0))):
- print("Для входных данных задачу решить невомзожно")
- raise SystemExit(0)
- elif (volume == capacity1):
- result1 = fill1()
- print ("fill #1:", result1, result2)
- raise SystemExit(0)
- elif (volume == capacity2):
- result2 = fill2()
- print ("fill #2:", result1, result2)
- raise SystemExit(0)
- elif (volume == (capacity1+capacity2)):
- result1 = fill1()
- print ("fill #1:", result1, result2)
- result2 = fill2()
- print ("fill #2:", result1, result2)
- raise SystemExit(0)
- elif (((volume % capacity1) == 0) and (capacity1 < capacity2)):
- result1 = fill1()
- print("fill #1:", result1, result2)
- while ((result1+result2) != volume):
- result1, result2 = transfer_to2()
- print("transfer #1 -> #2:", result1, result2)
- result1 = fill1()
- print("fill #1:", result1, result2)
- raise SystemExit(0)
- elif (((volume % capacity2) == 0) and (capacity1 > capacity2)):
- result2 = fill2()
- print("fill #2:", result1, result2)
- while (((result1 + result2) != volume)):
- result1, result2 = transfer_to1()
- print("transfer #2 -> #1:", result1, result2)
- result2 = fill2()
- print("fill #2:", result1, result2)
- raise SystemExit(0)
- else:
- if (capacity1 < capacity2):
- result2 = fill2()
- print ("fill #2:", result1, result2)
- result1, result2 = transfer_to1()
- print ("transfer #2 -> #1:", result1, result2)
- while (((result1 + result2) % capacity1) != 0):
- while (result2 != 0):
- result1 = empty1()
- print("empty #1:", result1, result2)
- if ((result1 + result2) == volume):
- raise SystemExit(0)
- else: pass
- result1, result2 = transfer_to1()
- print("transfer #2 -> #1", result1, result2)
- result2 = fill2()
- print ("fill #2:", result1, result2)
- if ((result1 + result2) == volume):
- raise SystemExit(0)
- else: pass
- result1, result2 = transfer_to1()
- print("transfer #2 -> #1:", result1, result2)
- else:
- result1 = fill1()
- print ("fill #1:", result1, result2)
- result1, result2 = transfer_to2()
- print ("transfer #1 -> #2:", result1, result2)
- while (((result1 + result2) % capacity2) != 0):
- while (result1 != 0):
- result2 = empty2()
- print("empty #2:", result1, result2)
- if ((result1 + result2) == volume):
- raise SystemExit(0)
- else: pass
- result1, result2 = transfer_to2()
- print("transfer #1 -> #2", result1, result2)
- result1 = fill1()
- print ("fill #1:", result1, result2)
- if ((result1 + result2) == volume):
- raise SystemExit(0)
- else: pass
- result1, result2 = transfer_to2()
- print("transfer #1 -> #2:", result1, result2)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement