Pagini recente » Cod sursa (job #1618667) | junior_challenge/clasament | Cod sursa (job #3321460) | Cod sursa (job #1618548) | Cod sursa (job #3326371)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX(a, b) (((a) > (b)) ? (a) : (b))
int main()
{
FILE *fin = fopen("ssm.in", "r");
FILE *fout = fopen("ssm.out", "w");
int n, best_left = 0, best_right = 0, left = 0, right = 0;
fscanf(fin, "%d", &n);
int *s = malloc(n * sizeof(int));
for(int i = 0; i < n; i++)
{
fscanf(fin, "%d", &s[i]);
}
int suma_curenta = 0, suma_maxima = s[0];
for(int i = 0; i < n; i++)
{
suma_curenta += s[i];
if(suma_curenta > suma_maxima)
{
suma_maxima = suma_curenta;
best_left = left;
best_right = i;
}
if(suma_curenta < 0)
{
suma_curenta = 0;
left = i + 1;
}
}
fprintf(fout, "%d %d %d", suma_maxima, best_left + 1, best_right + 1);
fclose(fin);
fclose(fout);
free(s);
return 0;
}