Pagini recente » Cod sursa (job #1418741) | Cod sursa (job #2260204) | Cod sursa (job #2188609) | Cod sursa (job #2376956) | Cod sursa (job #1338169)
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
int main()
{
FILE *f, *g;
f = fopen("secv2.in", "r");
g = fopen("secv2.out", "w");
int N, A[50000], i, best, poz_i, k, max, rez_i, rez_f, rez = INT_MIN, sum = 0;
fscanf(f, "%d %d", &N, &k);
poz_i = 0;
best = 0;
max = INT_MIN;
for (i = 0; i < N; i++)
{
fscanf(f, "%d", &A[i]);
sum += A[i];
if (best + A[i] > max)
{
if (i - poz_i + 1 >= k)
{
rez_i = poz_i;
rez_f = i;
rez = best + A[i];
}
max = best + A[i];
}
if (best + A[i]<0)
{
poz_i = i + 1;
best = 0;
}
else
{
best += A[i];
}
}
if (rez == INT_MIN)
{
rez_i = 0;
rez_f = N - 1;
rez = sum;
}
fprintf(g, "%d %d %d", rez_i + 1, rez_f + 1, rez);
return 0;
}