Cod sursa(job #1753699)

Utilizator leraValeria lera Data 6 septembrie 2016 23:05:36
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("secv2.in");
ofstream fout("secv2.out");
long long a[50001],sum[50001];
int main()
{
    long long n,i,t,s=0,k=0,maxx=-125000000000,first=1,last,firstmax,lastmax;
    fin>>n>>t;
    for(i=1;i<=n;i++)
        fin>>a[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;
}