Cod sursa(job #1436286)

Utilizator ArambasaVlad Arambasa Arambasa Data 15 mai 2015 17:50:57
Problema Secventa 2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
using namespace std;
#include<fstream>

ifstream fin("secventa2.in");
ofstream fout("secventa2.out");

const int NMax = 50005;

int N,K,Sol,Start,Finish;
int X[NMax];

void Read()
{
    fin>>N>>K;
    for(int i=1;i<=N;i++)
        {
            fin>>X[i];
        }
}

void Solve()
{
    int Sum = 0, SK = 0, Begin;

    for(int i=1; i<=K; i++)
        Sum=Sum+X[i];

    SK = Sum;
    Sol = Sum; Begin = Start = 1; Finish = K;

    for(int i = K + 1; i<=N; i++)
        {
            SK = SK + X[i] - X[i-K];

            if (Sum + X[i] < SK)
            {
                Sum = SK;
                Begin = i-K+1;
            }
            else
            {
                Sum += X[i];
            }

            if(Sum>Sol)
                {
                    Sol = Sum;
                    Start = Begin;
                    Finish = i;
                }

        }
}

void Print()
{
    fout<<Start<<" "<<Finish<<" "<<Sol<<"\n";
}

int main()
{
    Read();
    Solve();
    Print();
    return 0;
}