Cod sursa(job #649417)
Utilizator | Data | 15 decembrie 2011 23:48:53 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 80 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.67 kb |
#include <cstdio>
#include <climits>
int main()
{
int N, A, b = 0, max_s = INT_MIN, min_s = INT_MAX, si = 0, sj = 0, i = 0, j = 0;
freopen("ssm.in", "r", stdin);
freopen("ssm.out", "w", stdout);
scanf("%d", &N);
for (int it = 1; it <= N; ++it)
{
scanf("%d", &A);
si += A;
sj += b;
b = A;
if (si >= max_s)
{
max_s = si;
i = it;
}
else if (it > 0 && sj < min_s)
{
min_s = sj;
j = it - 1;
}
}
printf("%d %d %d", max_s - min_s, j + 1, i);
fcloseall();
return 0;
}