Лесенка С++

На каждой из n + 2 ступенек лестницы записано целое число, причем на первой и на последней ступеньке записано число 0. На первой ступеньке стоит человек, которому необходимо подняться на последнюю ступеньку. За один шаг он может подниматься на любое число ступенек, не превосходящее k.

Подсчитаем сумму всех чисел, написанных на ступеньках, на которые наступил человек. Найдите наибольшее возможное значение этой суммы.

Входные данные

   В первой строке записано число n (0 ≤ n ≤ 1000). Во второй строке записано n целых чисел, не превосходящих по модулю 1000, разделенных пробелами - числа, записанные на ступеньках (за исключением первой и последней ступеньки, на которых записаны нули). В третьей строке записана максимальная величина шага человека k (1 ≤ k ≤ n).

Выходные данные

   Выведите максимально возможную сумму чисел, записанных на ступеньках, на которые наступил человек.

 

#include<iostream>
using namespace std;

int main(){
    int i,j=0,a,b,mas[1001],max;
    cin>>a;
    for(i=1;i<=a;i++)
    cin>>mas[i];
    cin>>b;
    mas[0]=0;
    mas[a+1]=0;
    
    for(i=1;i<=a+1;i++){
    max=mas[j];
    for( j=i-b;j<i;j++){
        if(j<0)j=0;
        if(max<mas[j]) max=mas[j];
        }
    mas[i]=max+mas[i];                
    }
        cout<<mas[a+1]<<endl;
    
}

Назад

Повышение продаж с помощью веб-форм Разложение числа на простые множители Как качественный контент способствует продвижению сайта Как выбрать хостинг Как писать SEO-тексты? Что такое SEO оптимизация сайта


Хостинг

Есть решение которого нет на сайте? Пиши admin@devexe.top