Pagini recente » Cod sursa (job #972894) | Cod sursa (job #902836) | Cod sursa (job #3309130)
#include <bits/stdc++.h>//DINAMICAAAA SSM
using namespace std;
int v[1 + 6000000], dp[1 + 6000000];
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int main()
{
int n;
fin >> n;
for (int i = 1; i <= n; i++)
fin >> v[i];
dp[1] = v[1];
int summax = v[1];
int stcur = 1, stmax = 1, endmax = 1;
for (int i = 2; i <= n; i++)
{
if (dp[i - 1] + v[i] < v[i])
{
dp[i] = v[i];
stcur = i;
}
else
{
dp[i] = dp[i - 1] + v[i];
}
if (dp[i] > summax ||
(dp[i] == summax && stcur < stmax) ||
(dp[i] == summax && stcur == stmax && i - stcur < endmax - stmax))
{
summax = dp[i];
stmax = stcur;
endmax = i;
}
}
fout << summax << " " << stmax << " " << endmax << "\n";
return 0;
}