Cod sursa(job #262138)

Utilizator stocarulCosmin-Mihai Tutunaru stocarul Data 19 februarie 2009 00:57:16
Problema Subsecventa de suma maxima Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.66 kb
#include<stdio.h>
#define infile "ssm.in"
#define outfile "ssm.out"
int n; //lungimea sirului
int sm,lm,rm; //suma subsecventei maxime, indicele de inceput, si indicele de sfarsit
int sb,lb; //suma din dinamica curenta, respectiv indicele pozitiei de icneput

int main()
{
int i,x;
freopen(infile,"r",stdin);
freopen(outfile,"w",stdout);

scanf("%d\n",&n);
for(i=1;i<=n;i++)
	{
	scanf("%d",&x); //citim elementul din sir
	if(sb+x<x) sb=x,lb=i; //incepem subsecventa noua
	else sb+=x; //adaugam elementul curent la subsecventa
	if(sb>sm) //am gasit o subsecventa de lungime mai mare
		sm=sb,lm=lb,rm=i;
	}
printf("%d %d %d",sm,lm,rm);

fclose(stdin);
fclose(stdout);
return 0;
}