nq1s788

Untitled

Oct 26th, 2025
1,215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.06 KB | None | 0 0
  1. В этой задаче нужно понять в какой день на текущий момент времени выгоднее всего сдавать волосы. Все просто: сдавать их нужно в тот день, когда цена максимальна среди оставшихся дней. Т.е. пока еще общий срок истечения дней не окончен каждый раз нужно находить максимальный элемент массива C[k] (k=p+1..N-1) и сдавая все волосы получать свои C[k]*(k-p) у.е. , где p - номер последнего дня cдачи волос. За первый день сдачи можно считать p=-1.
  2.  
  3. Пример кода на python:
  4. n = int(input())
  5. c = list(map(int, input().split()))
  6. m = [0]*n
  7. m[-1] = n-1
  8. for i in range(n-2, -1, -1):
  9.     m[i] = m[i+1]
  10.     if c[i] >= c[m[i]]:
  11.         m[i] = i
  12. ans = 0
  13. d = -1
  14. for i in range(n):
  15.     if m[i] == i:
  16.         ans += c[i]*(i-d)
  17.         d = i
  18. print(ans)
Advertisement
Add Comment
Please, Sign In to add comment