Cod sursa(job #1263954)

Utilizator deresurobertoFMI - Deresu Roberto deresuroberto Data 15 noiembrie 2014 12:35:54
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
//Roberto Deresu - FMI
//Re :)
#include<fstream>
#include<climits>
#define nx 50007
using namespace std;
int n,k,i,poz_initiala,inceput,sfarsit,s,sol,maxim,v[nx];

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

int main()
{
    fin>>n>>k;
    poz_initiala = 1;

    for(i=1;i<=n+1;i++)
    {
        fin>>v[i];

        if((s > sol || !sol) && i-poz_initiala >= k)
        {
            inceput = poz_initiala;
            sfarsit = i-1;
            sol = s;
        }

        if(s+v[i] >= 0) s += v[i];

        else
        {
            s = 0;
            poz_initiala = i+1;
        }
    }

    if(!inceput)
    {
        sol = INT_MIN;

        for(i=1;i<k;i++) s+= v[i];

        for(i=k;i<=n;i++)
        {
            s+=v[i];
            if(s > sol)
            {
                inceput = i-k+1;
                sfarsit = i;
                sol = s;
            }
            s -= v[i-k+1];
        }
    }

    fout<<inceput<<" "<<sfarsit<<" "<<sol;

	return 0;
}