from collections import deque
n, k = map(int, input().split())
x, d, ssum = list(map(int, input().split())), deque(), 0
b = [(0,0) for i in range(n)]
for i in range(n):
ssum += x[i]
if i >= k :
ssum -= x[i - k]
if d[0] == i - k :
d.popleft()
while len(d) and x[d[-1]] >= x[i]:
d.pop()
d.append(i)
if i >= k - 1:
nb = (b[i-k][0] + x[d[0]] * ssum, i-k+2)
b[i] = max(b[i-1], nb, key=lambda x: x[0])
i = n - 1
d = deque()
j = b[-1][1]
d.appendleft(j)
while i !=0:
i -= 1
j1 = b[i][1]
if j-k>=j1 and j1 > 0 :
d.appendleft(j1)
j = j1
print(str(len(d)))
print(" ".join(map(str, d)))
Поделитесь своими знаниями, ответьте на вопрос:
15 + лучший у исполнителя квадратор есть 2 команды 1)возведи в квадрат 2)вычти 3 составьте алгоритм получения из числа 1 числа 19, содержащий не более 5 команд
1) 1-3=-2
2) -2-3=-5
3) (-5)^2=25
4) 25-3=22
5)22-3=19