Pagini recente » Cod sursa (job #2084999) | Cod sursa (job #1237512) | Cod sursa (job #2060695) | Cod sursa (job #2371933) | Cod sursa (job #313274)
Cod sursa(job #313274)
#include<stdio.h>
long n,k,i,s,smax,is,sfm,im,j,dist,sm,imp,sfmp;
long v[50010];
int main()
{
freopen("secv2.in","r",stdin);
freopen("secv2.out","w",stdout);
scanf("%ld%ld",&n,&k);
for(i=1;i<=n;++i) scanf("%ld",&v[i]);
s=smax=v[1];
is=sfm=1;
if(n==k)
{
for(i=2;i<=n;++i) smax+=v[i];
im=1;sfm=k;
}
else
for(i=2;i<=n;++i)
{
if(s+v[i]>=v[i])
s+=v[i];
else
{
s=v[i];
is=i;
}
if(s>smax && i-is+1>=k )
{
smax=s;
im=is;
sfm=i;
}
}
/*if(sfm-im+1<k)
{
dist=k-sfm+im-1;
sm=-999999999;
for(i=0;i<=dist;++i)
{
s=smax;
if(im-i>0 && sfm+(dist-i)<=n)
{
for(j=im-i;j<im;++j) s+=v[j];
for(j=sfm+1;j<=sfm+(dist-i);++j) s+=v[j];
if(s>sm) {sm=s;imp=im-i;sfmp=sfm+(dist-i);}
}
}
im=imp;sfm=sfmp;smax=sm;
}*/
printf("%ld %ld %ld\n",im,sfm,smax);
}