Pagini recente » Cod sursa (job #2744464) | Cod sursa (job #1478520) | Cod sursa (job #2069002) | Cod sursa (job #1190404) | Cod sursa (job #1899661)
#include <iostream>
#include <fstream>
using namespace std;
int n, bestsum, dr, j, st;
int v[6000001], i, best[6000001];
int main () {
ifstream fin("ssm.in");
ofstream fout("ssm.out");
fin >> n;
for (i = 1; i <= n; i++) fin >> v[i];
bestsum = v[1];
dr = 1;
for (i = 1; i <= n; i++)
{
best[i] = v[i];
if (best[i] < best[i-1] + v[i])
best[i] = best[i-1] + v[i];
if (best[i] > bestsum)
{
bestsum = best[i];
dr = i;
}
}
i = dr;
n = bestsum;
while (i >= 1 && n != 0)
{
n -= v[i];
i--;
}
if (bestsum == 0) i--;
st = i+1;
j = st-1;
if (v[st-1] == 0)
while (v[j]==0 && j >= 1) { st--; j--; }
fout << bestsum << " " << st << " " << dr << "\n";
}