Cod sursa(job #791620)
| Utilizator | Data | 24 septembrie 2012 18:18:22 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | c | Status | done |
| Runda | Arhiva educationala | Marime | 0.48 kb |
#include <stdio.h>
int main(void)
{
freopen("ssm.in", "r", stdin);
freopen("ssm.out", "w", stdout);
int s, N, i;
scanf("%d", &N);
int sum = 0;
int maxSum = -10000000;
int start = 0, stop = 0, sCandidate = 0;
for (i = 0; i < N; i++) {
scanf("%d", &s);
sum += s;
if (sum > maxSum) {
maxSum = sum;
stop = i;
start = sCandidate;
}
if (sum < 0) {
sum = 0;
sCandidate = i + 1;
}
}
printf("%d %d %d", maxSum, start + 1, stop + 1);
return 0;
}
