Pagini recente » Cod sursa (job #950020) | Cod sursa (job #3220961) | Cod sursa (job #835173) | Cod sursa (job #1784301) | Cod sursa (job #478761)
Cod sursa(job #478761)
#include <stdio.h>
#include <stdlib.h>
#define N 6000000
int v[N];
int ssm(int n, int *start, int *stop)
{
int i, s = v[0], max = v[0], ok = 0, aux;
*start = 0, *stop = 0;
for (i = 1; i < n; i++)
{
aux = max + v[i];
if (aux > v[i])
max = aux;
else
{
max = v[i];
ok = i;
while (v[ok - 1] == 0) ok--;
}
if (max > s)
{
s = max;
*stop = i;
*start = ok;
}
}
return s;
}
int main()
{
int n, i, r, start, stop;
FILE *f, *g;
f = fopen("ssm.in", "r");
g = fopen("ssm.out", "w");
fscanf(f, "%d", &n);
//v = (int *)malloc(sizeof(int) * n);
for (i = 0; i < n; i++)
fscanf(f, "%d", &v[i]);
r = ssm(n, &start, &stop);
fprintf(g, "%d %d %d\n", r, start + 1, stop + 1);
fclose(f);
fclose(g);
return 0;
}