Cod sursa(job #213527)

Utilizator zlatebogdanZlate Bogdan zlatebogdan Data 10 octombrie 2008 09:30:18
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<stdio.h>
#define N 50070
#define inf -1500000000
int v[N],sum[N],n,p,x,u,smax,k;
void citire()
{
	int i;
	scanf("%d",&n);
	scanf("%d",&k);
	for (i=1;i<=n;++i)
	{
		scanf("%d",&v[i]);
		sum[i]=v[i]+sum[i-1];
	}
}

void suma()
{
	int sc=sum[k-1];
	int poz=1;
	smax=inf;
	x=1;
	for(int i=k;i<=n;++i){
		sc=sc+v[i];
		if (sum[i]-sum[i-k]>sc)
		{
			sc=sum[i]-sum[i-k];
			poz=i-k+1;
		}
		if (sc>smax)
		{
			smax=sc;
			p=poz;
			u=i;
		}
	}
}

void calcul()
{
	suma();
	printf("%d %d %d\n", p, u, smax);
}

int main()
{
	freopen("secv2.in","r",stdin);
	freopen("secv2.out","w",stdout);
	citire();
	calcul();
	return 0;
}