Guest User

Untitled

a guest
Jul 6th, 2020
616
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.46 KB | None | 0 0
  1. Задача №1253. Торговля акциями
  2. ##s1 = '5 1000'
  3. ##s2 = '10 9 8 7 6'
  4. ##s3 = '9 8 7 6 5'
  5. ##s2 = '2 3 1 4 3'
  6. ##s3 = '1 2 1 2 3'
  7. s1 = input()
  8. s2 = input()
  9. s3 = input()
  10. n, x = map(int, s1.split())
  11. A = list(map(int, s2.split()))
  12. B = list(map(int, s3.split()))
  13. # Вспомогательный список
  14. # B[i][0] - масимальная цена продажи в этот день и позже
  15. # B[i][1] - индекс дня с максимальной ценой продажи
  16. B[-1] = (B[-1], -1)
  17. for i in range(2,len(B)):
  18. ~~~~if B[-i] > B[-i+1][0]:
  19. ~~~~~~~~B[-i] = (B[-i], -i)
  20. ~~~~else:
  21. ~~~~~~~~B[-i] = B[-i+1]
  22.  
  23. a_mn = A[0]# минимальная цена покупки не позже текущего дня
  24. a_mni = 0# индекс для с минимальной ценой покупки
  25. mx = x# максимальные деньги после покупки-продажи
  26. mx_ij = (-1,-1)# дни покупки и продажи, нумерация с 1
  27. for i in range(len(A)-1):# -1 потому, что покупать в последний день нельзя
  28. ~~~~if A[i] < a_mn:
  29. ~~~~~~~~a_mn = A[i]
  30. ~~~~~~~~a_mni = i
  31. ~~~~n_buy = x // a_mn# число купленных
  32. ~~~~rest = x % a_mn# сдача
  33. ~~~~x_sell = n_buy * B[i+1][0] + rest# деньги после продажи в этот день
  34. ~~~~if x_sell > mx:
  35. ~~~~~~~~mx = x_sell
  36. ~~~~~~~~mx_ij = (i+1, len(B) + B[i+1][1] +1)
  37.  
  38. print(mx)
  39. print(*mx_ij)
Advertisement
Add Comment
Please, Sign In to add comment