Cod sursa(job #313274)

Utilizator crisojogcristian ojog crisojog Data 8 mai 2009 17:10:36
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#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);
}