Дана последовательность из n целых чисел. Найти максимальную сумму подпоследовательности элементов.
У нас есть некий массив а. Сделаем еще один массив f, куда будем записывать максимальную сумму в данный момент.
Массив а: |2 |8|1|-5|-10|2|3|
Массив f: |2|10|11|6|-4|2|5|(Почему мы написали 2 и 5, если сумма предыдущего и i-го меньше самого i-го тогда записываем в массив f само i)
Ответ на данный пример будет максимальное в массиве f. Это 11
Код:
f[1]:=a[1]; for i:=2 to n do if a[i]>f[i-1]+a[i] then f[i]:=a[i] else f[i-1]+a[i]; for i:=1 to n do if f[i]>max then max:=f[i]; writeln(max); end.