Cod sursa(job #282109)

Utilizator GheorgheMihaiMihai Gheorghe GheorgheMihai Data 16 martie 2009 21:44:35
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<stdio.h>
long n,k;
long st,dr;
int v[50010];//v[50010]


void read()
{
freopen("secv2.in","r",stdin);
freopen("secv2.out","w",stdout);
scanf("%ld%ld",&n,&k);
long i;
for(i=1;i<=n;i++)
	scanf("%d",&v[i]);
}


void p_dr()
{
long i;
long s=0,max;
for(i=1;i<=k;i++)
	s=s+v[i];
max=s;
dr=k;
for(i=k+1;i<=n;i++)
	{
	s=s+v[i];
	if(s>max)
		{
		max=s;
		dr=i;
		}
	}
}


void p_st()
{
long i;
long s,max,lim;
max=-2000000000;
s=0;
lim=dr-k+1;
for(i=dr;i>=lim;i--)
	s=s+v[i];
max=s;
st=lim;
for(i=dr-k;i>=1;i--)
	{
	s=s+v[i];
	if(s>=max)
		{
		max=s;
		st=i;
		}
	}
}


void rez()
{
long i;
long s=0;
for(i=st;i<=dr;i++)
	s=s+v[i];
printf("%ld %ld %ld\n",st,dr,s);
}


int main()
{
read();
p_dr();
p_st();
rez();
return 0;
}