Cod sursa(job #112852)

Utilizator mithyPopovici Adrian mithy Data 8 decembrie 2007 02:56:11
Problema Secventa 2 Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <stdio.h>
#define NMax 100
#define INF 50000

long n, k;
long a[NMax];
long max[NMax], lg[NMax];

void citire();
void pd();
void afis();

int main()
{
	citire();
	pd();
	afis();

	return 0 ;
}
void afis()
{
	long start, maxx=-INF, i;

	for (i=0; i<n; i++)
		if ( max[i] > maxx && lg[i] >= k )
		{
			maxx = max[i];
			start = i;
		}
	
	FILE *g = fopen( "secv2.out", "wt" );
	fprintf( g, "%d %d %d", start+1, start+lg[start], max[start] );
	fclose(g);
}
void pd()
{
	long i, j;

	max[n-1] = a[n-1];
	lg[n-1]  = 1;

	for (i=n-2; i>=0; i--)
	{
		if ( a[i] + max[i+1] > a[i] )
		{
			max[i] = a[i] + max[i+1];
			lg[i] = lg[i+1] + 1;
		}
		else
		{
			max[i] += a[i];
			lg[i] = 1;
		}
	}
}
void citire()
{
	int i;
	FILE *f = fopen( "secv2.in", "rt" );
	fscanf( f, "%d %d", &n, &k );
	for (i=0; i<n; i++)
		fscanf( f, "%d", &a[i] );
	fclose( f );
}