Cod sursa(job #568824)

Utilizator maritimCristian Lambru maritim Data 31 martie 2011 18:45:34
Problema Subsecventa de suma maxima Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include<stdio.h>

int N;
long int Po = 1;
long int Lo = 1;
long int MAX = -11111;

void citire(void)
{
	int S = -111111;
	long int P = 0;
	long int L = 0;
	long int a;
	FILE *f = fopen("ssm.in","r");
	
	fscanf(f,"%d ",&N);
	fscanf(f,"%d",&a);
	MAX = a;
	S = a;
	P = 1;
	L = 1;
	for(int i=2;i<=N;i++)
	{
		fscanf(f,"%d",&a);
		if(a>S && S<0)
		{
			S = a;
			P = i;
			L = 1;
		}
		else
		{
			S+= a;
			L ++;
		}
		if(MAX<S)
		{
			MAX = S;
			Po = P;
			Lo = L;
		}
	}
	
	fclose(f);
}

int main()
{
	FILE *f = fopen("ssm.out","w");
	
	citire();
	fprintf(f,"%d %d %d",MAX,Po,Po+Lo-1);
	
	fclose(f);
	return 0;
}