Cod sursa(job #108059)

Utilizator hadesgamesTache Alexandru hadesgames Data 21 noiembrie 2007 14:09:19
Problema Secventa 2 Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <stdio.h>
int a[50001],b[50001],c[50001],d[50001];
int main()
{
	int max,x,y,i,k,n,s;
	FILE *in,*out;
	in=fopen("secv2.in","r");
	out=fopen("secv2.out","w");
	fscanf(in,"%d%d",&n,&k);
	a[0]=-25001;
	max=-25001;
	for (i=1;i<=n;i++)
	{
		fscanf(in,"%d",&b[i]); 
		if (a[i-1]+b[i]>=b[i])
		{
			a[i]=a[i-1]+b[i];
			c[i]=c[i-1];
		}
		else
		{
			a[i]=b[i];
			c[i]=i;
		}
	}
	s=0;
	for (i=1;i<=k;i++)
		s+=a[i];
	max=s;
	x=1;
	y=k;
	d[k]=s;
	
	for (i=k+1;i<=n;i++)
	{ 
		s-=b[i-k+1];
		s+=b[i];
		d[i]=s+a[i-k+1];
		if (d[i]>max)
		{
			max=d[i];
			x=c[i-k+1];
			y=i;
		}
		
	}
	fprintf(out,"%d %d %d\n",x,y,max);
	fclose(in);
	fclose(out);
	return 0;
}