Cod sursa(job #568815)

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

int N;
long int Po = 0;
long int Lo = 0;
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);
	for(int i=1;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;
			if(Po == P)
			{
				Lo = L;
			}
			else
			{
			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;
}