Pagini recente » Cod sursa (job #2368450) | Cod sursa (job #798820) | Cod sursa (job #2697773) | Cod sursa (job #2713517) | Cod sursa (job #762988)
Cod sursa(job #762988)
/*
Subsecventa de suma maxima - folosind programare dinamica.
*/
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#define MAXNUM 6000000
#define max(a, b) ((a > b) ? a : b)
int numere[MAXNUM], n;
int id_start, id_stop, sum_max;
void secv_sum_max () {
sum_max = INT_MIN;
int sum = 0;
int id = 0;
int i;
for (i = 0; i < n; i++) {
if (sum < 0) {
sum = numere[i];
id = i;
}
else
sum += numere[i];
if (sum_max < sum) {
sum_max = sum;
id_start = id + 1;
id_stop = i + 1;
}
}
}
int main () {
freopen("ssm.in", "r", stdin);
freopen("ssm.out", "w", stdout);
int i;
scanf("%d", &n);
for (i = 0; i < n; i++)
scanf("%d", &numere[i]);
secv_sum_max();
printf("%d %d %d", sum_max, id_start, id_stop);
return 0;
}