Warning: Illegal string offset 'html' in /var/www/lvp37/data/www/lvp37.ru/cache/skin_cache/cacheid_2/skin_topic.php on line 379
Вася и Максимальный Отрезок - олимпиадники-информатики
←  Динамическое программирование

олимпиадники-информатики

»

Вася и Максимальный Отрезок

baluconis фотография baluconis 08 Oct 2019

У Васи есть массив целых чисел из N элементов. Он хочет вырезать из массива отрезок с максимальной суммой и подарить его маме на день рождения. Какой будет максимальная сумма? :huh:


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

В первой строке дано натуральное число n ( 1 ≤ n ≤ 10 5 ) — размер массива. Во второй строке через пробел перечислены элемента массива. Числа не превышают 10 4 .

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


Выведите три числа — индекс начала отрезка, индекс конца и саму максимальную сумму. Массив индексируется с единицы. Если ответов несколько — выведите любой. ;)

Примеры



входные данные
5-1 2 3 -2 5

выходные данные
2 5 8
Сдать задачу: https://informatics....pterid=111641#1

Все было бы просто, если бы в массиве не было отрицательных чисел, тогда ответом был бы весь массив.

Эта задача является одной из самых простых на тему Динамического Программирования(ДП).

Решение:
1)Создаем массив DP, где будем хранить МАКСИМАЛЬНУЮ сумму на отрезке, в которую входит наш элемент.
2) Идем по всем элементам массива и смотрим: Нам выгодно продолжать прошлый отрезок или начать новый? (где сумма больше) и записываем сумму на данный момент в DP[i];
3)Если сумма вышла больше максимальной найденной на данный момент, то сохраняем первый и конечный элемент нашей последовательности
4)Выводимым ответ

Код(С++):

#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin >> n;
int a[n] ;
for(int i = 0; i < n; i++)
{
cin >> a[i];
}

int dp[n];int l[n] = {0};
int ans = -1e9;
dp[0] = a[0];
l[0] = 0; ans = max(a[0], ans); int ml = 0,mr = 0;
for(int i = 1; i < n; i++)
{
if(a[i] > dp[i - 1] + a[i]) l[i] = i;
else l[i] = l[i-1];
dp[i] = max(a[i], a[i] + dp[i-1]);
if(ans < dp[i])
{ml = l[i];
mr = i;}
ans = max(ans, dp[i]);
}

cout <<ml + 1 <<' '<<mr + 1 << ' '<< ans;
}
Ответить

StepPemia фотография StepPemia 09 Mar 2020

Buy Vardenafil 10 Mg Cialis Viagra Cost Per Tablet Buy Cialis Viagra Pfizer Acheter
Ответить

StepPemia фотография StepPemia 09 Mar 2020

Best Generic Viagra Pills Buy Cialis Achat Baclofene cheap cialis Cialis 20 Mg 1 Tableta
Ответить

Horoscchoolo фотография Horoscchoolo 30 Nov 2020

Изображение


Ежедневный Гороскоп от НЕЙРОСЕТИ!


Узнайте, что говорят звезды! Читайте онлайн и слушайте «Глобальный » каждый день. Ежедневный бесплатный гороскоп Лев Любовный . Астрологический прогноз для женщин и мужчин. на совместимость. Ежедневный астропрогноз для бизнеса и здоровья.
Ответить

DanielVof фотография DanielVof 30 Nov 2020

download porno for free porno really porno
Ответить

DanielVof фотография DanielVof 30 Nov 2020

superhero porno porno sex chinese pornos
Ответить

DanielVof фотография DanielVof 30 Nov 2020

videos pornos xxx gratis porno sex free porno clips
Ответить

DanielVof фотография DanielVof 30 Nov 2020

free downloadable pornos porno japonesas pornos
Ответить

DanielVof фотография DanielVof 30 Nov 2020

mom daughter porno porno sex gays pornos
Ответить

DanielVof фотография DanielVof 30 Nov 2020

mothers and sons porno porno videos casero pornos
Ответить

DanielVof фотография DanielVof 30 Nov 2020

cartoon porno comics porno moms and sons porno
Ответить

DanielVof фотография DanielVof 30 Nov 2020

sex porno free porno sex download pornos for free
Ответить

DanielVof фотография DanielVof 30 Nov 2020

pelicula pornos porno sex pakistani pornos
Ответить

DanielVof фотография DanielVof 30 Nov 2020

cheats porno porno thick girl pornos
Ответить

DanielVof фотография DanielVof 30 Nov 2020

movie pornos porno ethiopian pornos
Ответить

DanielVof фотография DanielVof 30 Nov 2020

free homemade pornos porno sex porno of celebrities
Ответить