Pagini recente » Cod sursa (job #3205442) | Cod sursa (job #2381537) | Cod sursa (job #1654654) | Cod sursa (job #2975505) | Cod sursa (job #2909266)
#include <stdio.h>
#include <stdlib.h>
int main()
{
int N = 0, suma_maxima = 0, inceput_secventa = 0, sfarsit_secventa = 0, x = 0, *A = NULL, i = 0;
FILE* f = fopen("ssm.in", "r"), * g = fopen("ssm.out", "w");
fscanf(f, "%d", &N);
A = (int*)malloc(N * sizeof(int));
for (i = 0; i < N; i++)
fscanf(f, "%d", &A[i]);
x = 0;
suma_maxima = A[0];
for (i = 0; i < N; i++)
{
if (A[i] > A[i] + x)
x = A[i];
else
x = A[i] + x;
if (x > suma_maxima)
{
suma_maxima = x;
sfarsit_secventa = i;
}
}
x = 0;
for (i = sfarsit_secventa; i >= 0; i--)
{
x = x + A[i];
if (x == suma_maxima)
{
inceput_secventa = i;
break;
}
}
fprintf(g, "%d %d %d", suma_maxima, inceput_secventa + 1, sfarsit_secventa + 1);
fclose(f);
fclose(g);
free(A);
return 0;
}