Cod sursa(job #1333888)

Utilizator horiainfoTurcuman Horia horiainfo Data 3 februarie 2015 18:09:23
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
#include <cstdio>
using namespace std;
ofstream fout("secv2.out");
long long smax,inc,sf,a,n,k;
int s[50001];
struct vector{int val,poz;} vmax[50001];
int main()
{
    freopen("secv2.in","r",stdin);
    scanf("%d%d",&n,&k);
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&a);
        s[i]=s[i-1]+a;
    }
    vmax[n].val=s[n]; vmax[n].poz=n;
    for(int i=n-1;i>=k;i--)
        if(vmax[i+1].val<s[i])
            vmax[i].val=s[i],vmax[i].poz=i;
        else
            vmax[i]=vmax[i+1];
    smax=s[k]; inc=1; sf=k;
    for(int i=1;i<=n-k+1;i++)
    {
        if(smax<vmax[i+k-1].val-s[i-1])
            smax=vmax[i+k-1].val-s[i-1],inc=i,sf=vmax[i+k-1].poz;
    }
    fout<<inc<<' '<<sf<<' '<<smax<<'\n';
    return 0;
}