Несложная задачка по программированию (можно на любом языке):
Вася решил заняться торговлей рыбой. С помощью методов машинного обучения он предсказал цены на рыбу на N дней вперёд. Он решил, что в один день он купит рыбу, а в один из следующих дней — продаст (то есть совершит или ровно одну покупку и продажу или вообще не совершит покупок и продаж, если это не принесёт ему прибыли). К сожалению, рыба — товар скоропортящийся и разница между номером дня продажи и номером дня покупки не должна превышать K.
Определите, какую максимальную прибыль получит Вася.
Формат ввода
В первой строке входных данных задаются числа N и K (1 ≤ N ≤ 10000, 1 ≤ K ≤ 100).
Во второй строке задаются цены на рыбу в каждый из N дней. Цена — целое число, которое может находится в пределах от 1 до 109.
Формат вывода
Выведите одно число — максимальную прибыль, которую получит Вася.
ПРИМЕР:
Вввод: 5 2
1 2 3 4 5
Вывод:
2
Answers & Comments
С++
--------------------------------
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;
}