Cod sursa(job #422473)

Utilizator drywaterLazar Vlad drywater Data 22 martie 2010 18:57:54
Problema Secventa 2 Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <stdio.h>
FILE *f=fopen("secv2.in","r"),*g=fopen("secv2.out","w");
int k,n,v[50001],lm,l,st,fin,stm,finm,i;
int main(void)
{
	fscanf(f,"%d%d",&n,&k);
	stm=st=1;
	finm=fin=k;
	for (i=1;i<=n;i++)
	{
		fscanf(f,"%d",&v[i]);
		if (i<=k)
			l=lm+=v[i];
		else
		{
			if (l<0 && i<=n-k+1)
			{	l=v[i]; st=i; fin=i+k-1;}
			else
			{
			if (v[st]<=v[i] && v[st]<=0 && fin<i)
			{
				l=l-v[st]+v[i];
				st++;
				fin++;
			
			}
			else {l+=v[i];if (fin<i) fin++;}}
			if (l>lm)
			{
				lm=l;
				stm=st;
				finm=fin;
			}
		}
	}
	fprintf(g,"%d %d %d",stm,finm,lm);
	fclose(g);
	return 0;
}