Питон 18 !
кузнечик прыгает по столбикам, расположенным на одной линии на равных расстояниях друг от друга. столбики имеют порядковые номера от 1 до n . в начале кузнечик сидит на столбике с номером 1. он может прыгнуть вперед на расстояние от 1 до k столбиков, считая от текущего.
на каждом столбике кузнечик может получить или потерять несколько золотых монет (для каждого столбика это число известно). определите, как нужно прыгать кузнечику, чтобы собрать наибольшее количество золотых монет. учитывайте, что кузнечик не может прыгать назад.
входные данные
в первой строке вводятся два натуральных числа: n и k ( 2 ≤ n , k ≤ 1 ), разделённые пробелом. во второй строке записаны через пробел n - 2 целых числа – количество монет, которое кузнечик получает на каждом столбике, от 2-го до n - 1 -го. если это число отрицательное, кузнечик теряет монеты. гарантируется, что все числа по модулю не превосходят 1.
выходные данные
в первой строке программа должна вывести наибольшее количество монет, которое может собрать кузнечик. во второй строке выводится число прыжков кузнечика, а в третьей строке – номера всех столбиков, которые посетил кузнечик (через пробел в порядке возрастания).
если правильных ответов несколько, выведите любой из них.
примеры
входные данные
5 3
2 -3 5
выходные данные
7
3
1 2 4 5
# 1 рівень
from tkinter import *
root = Tk()
root.geometry("200*300")
def command_b():
Label(text="DWD").pack()
root.geometry("100x150")
b = Button(text="asdf", command = command_b)
b.pack()
root.mainloop()
# 2-3 рівень
from tkinter import *
root = Tk()
def printer():
Label(text="Характеристики принтера").pack()
def scaner():
Label(text="Характеристики сканера").pack()
def klaviatura():
Label(text="Характеристики клавиатуры").pack()
b1 = Button(text="Принтер", command=printer)
b2 = Button(text="Сканер", command=scaner)
b3 = Button(text="Клавиатура", command=klaviatura)
b1.pack()
b2.pack()
b3.pack()
Объяснение:
Решение представлено во вложении.
Язык: Pascal
ответ: переменная c примет значение 10.
Примечание:
div - целая часть от деления.
Ручная прогонка:
1 шаг:
a:=17;
2 шаг:
b:=(a div 10)*10; // 17 = 1 * 10 + 7 => a div 10 = 1; (a div 10) * 10 = 1*10 = 10; Получаем в b значение 10;
3 шаг:
a:=(b*2) + a div 100; // b * 2 = 10 * 2 = 20; a div 100 = 17 div 100 = 0;
a = 20 + 0 = 20; Получаем в a значение 20;
4 шаг:
Проверяем выполнение условий:
(a > b)? - Да, 20 > 10, значит в переменную c записываем значение (a-b). Получаем: c = a - b = 20 - 10 = 10.
ответ: с = 10