Cod sursa(job #123697)

Utilizator MegaheroDan Cearnau Megahero Data 17 ianuarie 2008 08:57:55
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include<stdio.h>
#include<stdlib.h>

int n,v[50001],sum[50001],i,inceputi,sfarsiti,k,s1,s,smax=-300000,p,q;

int main()
{
	freopen("secv2.in","r",stdin);
	freopen("secv2.out","w",stdout);
	scanf("%d",&n);
	scanf("%d",&k);
	sum[0]=0;
	for (i=1;i<=n;i++)
	{
		scanf("%d",&v[i]);
		sum[i]=v[i]+sum[i-1];
	}
	inceputi=p=1;
	sfarsiti=q=k;
	for (i=1;i<=k;i++)
		s=s+v[i];
	s1=smax=s;
	for (i=k+1;i<=n;i++)
	{
		if (sum[i]-sum[i-k]>s1+v[i])
		{
			s=sum[i]-sum[i-k];
			p=i-k+1;
			q=i;
		}
		else
		{
			q=i;
			s=s1+v[i];
		}
		s1=s;
		if (s>smax)
		{
			inceputi=p;
			sfarsiti=q;
			smax=s;
		}
	}

	printf("%d %d %d\n",inceputi,sfarsiti,smax);
	return 0;
}