Pagini recente » Cod sursa (job #1502870) | Istoria paginii runda/47/clasament | Cod sursa (job #496561) | Cod sursa (job #557954) | Cod sursa (job #2125108)
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
#include <climits>
#include <cstring>
using namespace std;
FILE * f = fopen("ssm.in", "r");
FILE * g = fopen("ssm.out", "w");
long long x[6000005], v[6000005] = {0}, mx = INT_MIN;
int main()
{
int n, inceput = 1, final, istart, ifinal;
fscanf(f, "%i", &n);
for (int i = 1; i <= n; i++)
{
fscanf(f, "%i", &x[i]);
}
v[1] = 0;
for (int i = 1; i <= n; i++)
{
if (v[i - 1] < 0)
{
v[i] = x[i];
inceput = i;
final = i;
}
else
{
v[i] = v[i - 1] + x[i];
final = i;
}
if (v[i] > mx)
{
mx = v[i];
istart = inceput;
ifinal = final;
}
}
fprintf(g, "%i %i %i", mx, istart, ifinal);
return 0;
}