Cod sursa(job #1753705)

Utilizator leraValeria lera Data 6 septembrie 2016 23:17:22
Problema Secventa 2 Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.46 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("secv2.in");
ofstream fout("secv2.out");
long long a[50001],sum[50001],minim[50001];
int main()
{
    long long n,i,t,maxx=-125000000000,firstmax,lastmax,j;
    fin>>n>>t;
    for(i=1;i<=n;i++)
        fin>>a[i];
    for(i=1;i<=n;i++)
    {
        sum[i]=sum[i-1]+a[i];
        if(sum[i]<minim[i-1])
            minim[i]=i;
        else
            minim[i]=minim[i-1];
    }
    for(i=t;i<=n;i++)
            if(sum[i]-sum[minim[i-t]]>maxx)
            {
                maxx=sum[i]-sum[minim[i-t]];
                firstmax=minim[i-t]+1;
                lastmax=i;
            }
    /*for(i=1;i<=n;i++)
        {
            if(s+a[i]<a[i])
            {
                s=a[i];
                first=i;
                last=i;
                k=1;
            }
            else
            {
                s+=a[i];
                last=i;
                k++;
            }
             if(s>maxx && k>=t)
                {
                    maxx=s;
                    firstmax=first;
                    lastmax=last;
                }
        }
    if(maxx==-125000000000)
        for(i=1;i<=n;i++)
            sum[i]=sum[i-1]+a[i];
        for(i=t;i<=n;i++)
            if(sum[i]-sum[i-t]>maxx)
    {
        maxx=sum[i]-sum[i-t];
        firstmax=i-t+1;
        lastmax=i;
    }*/
    fout<<firstmax<<" "<<lastmax<<" "<<maxx;
    return 0;
}