Cod sursa(job #1773623)

Utilizator mihai.alphamihai craciun mihai.alpha Data 7 octombrie 2016 23:44:58
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <stdio.h>


int sum[50001];
int main()  {
FILE *fin = fopen("secv2.in", "r");
FILE *fout = fopen("secv2.out", "w");
int n, k, i;
fscanf(fin, "%d%d", &n, &k);
int elem;
for(i = 1;i <= n;i++)  {
    fscanf(fin, "%d", &elem);
    sum[i] = sum[i - 1] + elem;
}
int s, first = 1, last = k, smax, maxfirst = 1, maxlast = k;
smax = sum[k];
s = sum[k];
for(i = k + 1;i <= n;i++)  {
    if(s + sum[i] - sum[i - 1] >= sum[i] - sum[i - k])  {
        last = i;
        s += sum[i] - sum[i - 1];
    }
    else  {
        s = sum[i] - sum[i - k];
        first = i - k + 1;
    }
    if(s > smax)  {
        smax = s;
        maxfirst = first;
        maxlast = last;
    }
}
fprintf(fout, "%d %d %d", maxfirst, maxlast, smax);
fclose(fin);
fclose(fout);
return 0;
}