Предмет: Информатика, автор: marcheanin

Несложная задачка по программированию (можно на любом языке):



Вася решил заняться торговлей рыбой. С помощью методов машинного обучения он предсказал цены на рыбу на N дней вперёд. Он решил, что в один день он купит рыбу, а в один из следующих дней — продаст (то есть совершит или ровно одну покупку и продажу или вообще не совершит покупок и продаж, если это не принесёт ему прибыли). К сожалению, рыба — товар скоропортящийся и разница между номером дня продажи и номером дня покупки не должна превышать K.

Определите, какую максимальную прибыль получит Вася.

Формат ввода

В первой строке входных данных задаются числа N и K (1 ≤ N ≤ 10000, 1 ≤ K ≤ 100).

Во второй строке задаются цены на рыбу в каждый из N дней. Цена — целое число, которое может находится в пределах от 1 до 109.
Формат вывода

Выведите одно число — максимальную прибыль, которую получит Вася.

ПРИМЕР:
Вввод: 5 2
1 2 3 4 5
Вывод:
2

Ответы

Автор ответа: eugene7870
1

С++

--------------------------------

Приложения:

eugene7870: ну тут только переписать на итеративный способ
eugene7870: сейчас сделаю
marcheanin: Спасибо, добрый человек
вкпа: вот это да, какие умные люди бывают!!
eugene7870: #include

using std :: cin;
using std :: cout;

int main(){

short K;
int dif = 0, size;

cin >> size >> K;

int mas[size];

for(int i = 0; i < size; i++)
cin >> mas[i];

for(int i = 0; i < size; i++){
for(int j = i + 1; j < size && j <= K; j++){
if(mas[j] - mas[i] > dif)
dif = mas[j] - mas[i];
}
}

cout << dif;

return 0;
}
eugene7870: попробуйте этот
marcheanin: Неверный ответ на 7 тесте. Расскажите, пожалуйста, как вы решаете. Я тоже подумаю
eugene7870: а, точно, измените на j <= K + i
marcheanin: Это 19 - я строка, правильно?
marcheanin: Спасибо большое! Задача зачлась!!!
Похожие вопросы
Предмет: Алгебра, автор: Reideen
Предмет: Химия, автор: elkhankalaubay07
Предмет: Математика, автор: настя030905