Cod sursa(job #216927)

Utilizator lamez0rBogdan Bondor lamez0r Data 26 octombrie 2008 10:28:17
Problema Secventa 2 Scor 70
Compilator c Status done
Runda Arhiva de probleme Marime 0.82 kb
#include<stdio.h>
unsigned int n,poz1,poz2;
int k,v[50001];
long s[50001],sum[50001],max;

void read ()
	{
	FILE *f=fopen("secv2.in","r");
	fscanf(f,"%d%d",&n,&k);
	int i;
	for (i=1;i<=n;++i)
		{
		fscanf(f,"%d",&v[i]);
		sum[i]=sum[i-1]+v[i];
		}
	fclose(f);
	}

void solve ()
	{
	int i,j,poz1i,poz2i;
	long maxi;
	for (i=k;i<=n;++i)
		{
		s[i]=sum[i];
		maxi=s[i];
		poz1i=1;
		poz2i=i;
		for (j=i+1;j<=n;++j)
			{
			s[j]=s[j-1]-v[j-i]+v[j];
			if (s[j]>maxi)
				{
				poz1i=j-i+1;
				maxi=s[j];
				poz2i=j;
				}
			s[j-2]=0;
			}
		if (maxi>max)
			{
			max=maxi;
			poz1=poz1i;
			poz2=poz2i;
			}
		}
	}

void write ()
	{
	FILE *f=fopen("secv2.out","w");
	fprintf(f,"%d %d %ld",poz1,poz2,max);
	fclose(f);
	}

int main ()
{
read ();
solve ();
write ();
return 0;
}