Cod sursa(job #767761)

Utilizator bratualexBratu Alexandru bratualex Data 14 iulie 2012 19:09:44
Problema Secventa 2 Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <fstream>

using namespace std;
ifstream fin("secv2.in");
ofstream fout("secv2.out");
void citire ( long long &);
void ssm (long long,long long );
long long max ( long long ,long long );
int k;
int main()
{
    long long n;

    fin>>n>>k;
    ssm (1,n);
    //fout<<n;
    return 0;
}

void ssm ( long long a, long long b)
{
    long long i,best[17],maxim,imaxs=a,istart=a,imaxsf=a,y,dim,dimmax;
    fin>>y;
    best[a%2]=y;
    dim=1;
    dimmax=1;
    maxim=y;
    for (i=a+1;i<=b;i++)
    {
        fin>>y;
        dim++;
        best[i%2]=max(y,best[!(i%2)]+y);
        if (y>best[!(i%2)]+y)
        {
            dim=0;
            istart=i;
        }
        if(best[i%2]>maxim && dim>=k)
            {
                dimmax=dim;
                imaxs=istart;
                imaxsf=i;
                maxim=best[i%2];
            }
    }
    if (k!=b)
        fout<<imaxs<<" "<<imaxsf<<" "<<maxim;
    else
        fout<<istart<<" "<<b<<best[b];
}


long long max ( long long a,long long b)
{
    if (a>b)
        return a;
    return b;
}