Pagini recente » Borderou de evaluare (job #804523) | Cod sursa (job #1494830) | Cod sursa (job #2307642) | Cod sursa (job #2528697) | Cod sursa (job #1899570)
#include <iostream>
#include <fstream>
using namespace std;
int n, bestsum, st, dr;
int v[6000000], i, best[6000000];
int main () {
ifstream fin("ssm.in");
ofstream fout("ssm.out");
fin >> n;
for (i = 1; i <= n; i++) fin >> v[i];
bestsum = v[1];
st = 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--;
}
fout << bestsum << " " << i+1 << " " << dr << "\n";
}
//5 -6 3 4 -2 3 -3