Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- В этой задаче нужно понять в какой день на текущий момент времени выгоднее всего сдавать волосы. Все просто: сдавать их нужно в тот день, когда цена максимальна среди оставшихся дней. Т.е. пока еще общий срок истечения дней не окончен каждый раз нужно находить максимальный элемент массива C[k] (k=p+1..N-1) и сдавая все волосы получать свои C[k]*(k-p) у.е. , где p - номер последнего дня cдачи волос. За первый день сдачи можно считать p=-1.
- Пример кода на python:
- n = int(input())
- c = list(map(int, input().split()))
- m = [0]*n
- m[-1] = n-1
- for i in range(n-2, -1, -1):
- m[i] = m[i+1]
- if c[i] >= c[m[i]]:
- m[i] = i
- ans = 0
- d = -1
- for i in range(n):
- if m[i] == i:
- ans += c[i]*(i-d)
- d = i
- print(ans)
Advertisement
Add Comment
Please, Sign In to add comment