Cod sursa(job #471170)

Utilizator robigiirimias robert robigi Data 17 iulie 2010 17:14:18
Problema Secventa 2 Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
// Secventa2.cpp : Defines the entry point for the console application.
//

//#include "stdafx.h"
#include "stdio.h"

FILE *f=fopen("secv2.in", "r");
FILE *g=fopen("secv2.out", "w");

int n, k, v[51000];
int a[51000];
int min[51000];
int mini[51000];



int minim(int x, int y)
{
	if (x<y) return x;
	return y;
}



void read()
{
	min[0]=10000000;
	fscanf(f, "%d%d", &n, &k);
	for (int i=1; i<=n; i++)
	{
		fscanf(f, "%d", &v[i]);
		a[i]=a[i-1]+v[i];
		min[i]=minim(min[i-1], a[i]);
		if (min[i]==a[i])
			mini[i]=i+1;
		else mini[i]=mini[i-1];
	}

}



void program()
{
	int max=-100000;
	int st=0, fin=0;
	for (int i=k; i<=n; i++)
	{
		if (a[i]-min[i-k]>max)
		{
			max=a[i]-min[i-k];
			st=mini[i-k];
			fin=i;
		}
	}
	fprintf(g, "%d %d %d", st, fin, max);
}


int main()
{
	read();
	program();
	fclose(f);
	fclose(g);
	return 0;
}