Cod sursa(job #130343)

Utilizator mariussMarius Telespan mariuss Data 31 ianuarie 2008 21:13:13
Problema Secventa 2 Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<stdio.h>
#define nmax 50010
long long i,j,k,v[3][nmax],n;
inline int max(int a, int b)
{
	if(a>b)
		return a;
	else
		return b;
}
int main()
{
	freopen("secv2.in","r",stdin);
	freopen("secv2.out","w",stdout);

	scanf("%lld %lld",&n,&k);

	for(i=1;i<=n;i++)
	{
		v[2][i]=i;
		scanf("%lld",&v[1][i]);
	}

	for(i=2;i<=n;i++)
	{
		v[1][i]=max(v[1][i-1]+v[1][i],v[1][i]);
		if(v[1][i-1]+v[1][i]>v[1][i])
			v[2][i]=v[2][i-1];

	}

	long long in,fin,smax=-nmax;

	for(i=1;i<=n;i++)
		if(smax<v[1][i]&&i-v[2][i]+1>=k)
		{
			smax=v[1][i];
			in=v[2][i];
			fin=i;
		}

	printf("%lld %lld %lld",in,fin,smax);

	return 0;
}