Cod sursa(job #973300)

Utilizator the_chosen_oneCristian Badea the_chosen_one Data 13 iulie 2013 23:17:12
Problema Subsecventa de suma maxima Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
//Se cere sa se determine subsecventa de suma maxima.
#include<stdio.h>
int v[6000001];
int main()
{
	FILE *Fin,*Fout;
	Fin=fopen("ssm.in","r");
	Fout=fopen("ssm.out","w");
	int n,inceput=0,sfarsit=0,si=0,sj=0,suma=-2147483647,min=2147483647,i;
	fscanf(Fin,"%d",&n);
	for(i=1;i<=n;++i)
		fscanf(Fin,"%d",&v[i]);
	for(i=1;i<=n+1;++i){
		si+=v[i];
		if(si-min>suma){
			suma=si-min;
			sfarsit=i;
		}
		sj+=v[i-1];
		if(min>sj){
			min=sj;
			inceput=i;
		}
	}
	fprintf(Fout,"%d %d %d",suma,inceput,sfarsit);
	fclose(Fin);
	fclose(Fout);
	return 0;
}