В среде программирования QuickBASIC используется оконная технология организации диалога, рассчитанная на использование в качестве устройств ввода клавиатуры и специального манипулятора мышь. Маркер курсора клавиатуры или мыши позиционируется в одном из окон и нажимается клавиша <ENTER> или соответствующая кнопка мыши для выполнения выбранного действия связанного с этим окном.
Рассмотрим подробнее технологию организации диалога с использованием клавиатуры. Для выбора какого либо пункта меню необходимо нажать клавишу <ALT> фон слова File изменится и среда ожидает выбора конкретного раздела меню. Управляя курсором клавишами стрелки выбрать нужный раздел, после этого необходимо нажать клавишу <ENTER>. Под выбранным пунктом меню появится подменю. Управляя курсором клавишами < стрелки > выбрать нужный раздела подменю ,после этого необходимо нажать клавишу <ENTER>. В случае необходимости отмены исполнения выбранного пункта меню достаточно нажать клавишу <ESC>.
В среде программирования QuickBASIC используется оконная технология организации диалога, рассчитанная на использование в качестве устройств ввода клавиатуры и специального манипулятора мышь. Маркер курсора клавиатуры или мыши позиционируется в одном из окон и нажимается клавиша <ENTER> или соответствующая кнопка мыши для выполнения выбранного действия связанного с этим окном.
Рассмотрим подробнее технологию организации диалога с использованием клавиатуры. Для выбора какого либо пункта меню необходимо нажать клавишу <ALT> фон слова File изменится и среда ожидает выбора конкретного раздела меню. Управляя курсором клавишами стрелки выбрать нужный раздел, после этого необходимо нажать клавишу <ENTER>. Под выбранным пунктом меню появится подменю. Управляя курсором клавишами < стрелки > выбрать нужный раздела подменю ,после этого необходимо нажать клавишу <ENTER>. В случае необходимости отмены исполнения выбранного пункта меню достаточно нажать клавишу <ESC>.
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)))