Cod sursa(job #827752)

Utilizator UnforgivenMihai Catalin Botezatu Unforgiven Data 2 decembrie 2012 16:48:03
Problema Secventa 2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 kb
#include <cstdlib>
#include <cstdio>
#define MAX_SIZE 50000
using namespace std;

int sume[MAX_SIZE];
int vect[MAX_SIZE];


int main()
{
    FILE *input = fopen("secventa2.in","r");
    FILE *output = fopen("secventa2.out","w");
    int N , K;
    fscanf(input,"%d%d",&N,&K);
    sume[0] = 0;
    for (int i = 1;i<=N;i++)
    {

        fscanf(input,"%d",&vect[i]);
        sume[i] = sume[i-1] + vect[i];
    }
    fclose(input);

    int sumpart = sume[K] - sume[0];
    int max = sumpart;
    int start=1,mstart = 1;
    int end=K,mend = K;
    for (int i = K+1 ; i<= N;i++)
    {
        sumpart += vect[i];
        if (sumpart <= sume[i] - sume[i-K])
        {
            start = i- K +1;
            end = i;
            sumpart = sume[i] - sume[i-K];
        }
        else
        {
            end++;
        }

        if (max <= sume[end] - sume[start-1])
        {
            max = sume[end] - sume[start-1];
            mstart = start;
            mend = end;
        }
    }
    fprintf(output,"%d %d %d",mstart,mend,max);
    fclose(output);
    return 0;
}