Cod sursa(job #213525)

Utilizator Alexa_ioana_14Antoche Ioana Alexandra Alexa_ioana_14 Data 10 octombrie 2008 09:11:38
Problema Secventa 2 Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include<stdio.h>
#define N 50000
#define MIC -1500000000
int s[N],k,n,pozi,pozf,v[N],sc,smax=MIC;
//pozi=pzitia init a celei mai bune secv
//pozf...
void calcul()
{
	sc=s[k-1];
	int poz=1;//poz=pozitia de inceput a secventei curente
	for (int i=k; i<=n; i++)
	{
		sc+=v[i];
		if(sc>smax)
		{
			smax=sc;
			pozi=poz;
			pozf=i;
		}
		if (s[i]-s[i-k]>sc)
		{
			sc=s[i]-s[i-k];
			poz=i-k+1;
		}
	}
}
void citire()
{
	scanf("%d%d",&n,&k);
	for(int i=1; i<=n; ++i)
	{
		scanf("%d",&v[i]);
		s[i]=s[i-1]+v[i];
	}
}
int main ()
{
	freopen("secv2.in","r",stdin);
	freopen("secv2.out","w",stdout);
	citire();
	calcul();
	printf("%d %d %d\n",pozi,pozf,smax);
	return 0;
}