Virtual_Universe

Олимпиада: задача с мостом и копейками

Sep 22nd, 2015
126
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #работу выполнил Мамаев Александр
  2. minuskop = int(input())
  3. rub = int(input()) #введите здесь начальное кол рубли
  4. kop = int(input()) #Здесь введите начальное кол коп
  5. inprub = rub #сохраняем введёные двнные в ещё одну переменную, чтобы в дальнейшем можно было сного привести к ним
  6. inpkop = kop #аналагично
  7. x = 0 #доп перменная , помогает инвертировать рубли и копейки
  8. i = 0 #просто счетчик
  9. rub2 = 0 #доп переменная рублей в неё записывается максимальное число рублей
  10. kop2 = 0 #аналогично
  11. #Просчитываем все возможные варианты и находим максимальное число рублей
  12. for i in range(2000): #поставил максимальное число вариантов 2000  чтобы не нагружать компьютер
  13.     if rub>0:
  14.         #проводим вычитание копеек
  15.         if (kop-minuskop)>0:
  16.             kop -= minuskop
  17.             x = rub
  18.             rub = kop
  19.             kop = x
  20.         #аналогично но в данный случай употребляется когда копеек мало и мы вычитаем их из рублей
  21.         elif rub>1:
  22.             rub-=1
  23.             kop+=100
  24.             kop-=minuskop
  25.             x = rub
  26.             rub = kop
  27.             kop = x
  28.        #тот случай когда не возможно занять у рубля
  29.         else:
  30.             kop-=minuskop
  31.             x = rub
  32.             rub = kop
  33.             kop = x
  34.         #здесь мы записываем максимальное число рублей и копеек
  35.         if rub>rub2:
  36.             rub2=rub
  37.             kop2=kop
  38.         elif rub==rub2 and kop>kop2:
  39.             rub2=rub
  40.             kop2=kop
  41.            
  42. #НАХОЖДЕИЕ ЗАМОГО ВЫГОДНОГО ВАРИАНТ
  43. rub = inprub #приводим руболи и копейки к начальному состоянию
  44. kop = inpkop
  45. #запускаем новый цикл чтобы узнать при какой попытке у нас получится максимальноечисло денег
  46. for i in range(2000): #поставил максимальное число вариантов 2000  чтобы не нагружать компьютер
  47.     if rub!=rub2 and kop!=kop2: #проводим все операции с рублями до тех пор пока рубли и копейки в цикле не станут равны максимальным значением рублей и копеек
  48.         if rub>0:
  49.             if (kop-minuskop)>0:
  50.                 kop -= minuskop
  51.                 x = rub
  52.                 rub = kop
  53.                 kop = x
  54.             elif rub>1:
  55.                 rub-=1
  56.                 kop+=100
  57.                 kop-=minuskop
  58.                 x = rub
  59.                 rub = kop
  60.                 kop = x
  61.             else:
  62.                 kop-=minuskop
  63.                 x = rub
  64.                 rub = kop
  65.                 kop = x
  66.     else: #когда они становятся равны то
  67.         print(i) #пишем номер попытки
  68.         break #разрываем цикл
  69. #проверить работоспособность кода можно на http://pythontutor.ru/visualizer/
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×