Cod sursa(job #260683)
Utilizator | Data | 17 februarie 2009 14:19:03 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | Ascuns |
Compilator | cpp | Status | done |
Runda | Marime | 0.66 kb |
#include <stdio.h>
#define MAXN 7000010
int N, Sol, p1, p2;
int A[MAXN];
int main()
{
freopen("ssm.in", "r", stdin);
freopen("ssm.out", "w", stdout);
int i, S = 0, last = 1;
scanf("%d ", &N);
for (i = 1; i <= N; i++) scanf("%d ", &A[i]);
for (i = 1; i <= N; i++)
{
if (S < 0)
{
S = A[i];
last = i;
}
else S += A[i];
if (S > Sol)
{
Sol = S;
p2 = i;
p1 = last;
}
}
printf("%d %d %d\n", Sol, p1, p2);
return 0;
}