Cod sursa(job #412859)

Utilizator RaphyRafailescu Marius Raphy Data 6 martie 2010 19:42:45
Problema Subsecventa de suma maxima Scor 70
Compilator c Status done
Runda Arhiva educationala Marime 0.55 kb
#include <stdio.h>
#include <stdlib.h>

int main(){
int n,*v,i;
FILE* in;
FILE* out;
in=fopen("ssm.in","r");
out=fopen("ssm.out","w");
fscanf(in,"%d",&n);
v=(int*)malloc (n*sizeof(int));
for (i=0;i<n;i++)
	fscanf(in,"%d",&v[i]);
int smax,sum,start=1,stop=1,m=0;
smax=sum=v[0];
for (i = 1;i < n; ++i){
	if (sum < 0){
		sum = v[i];
		m=1;
	}
	else{
		sum += v[i];
		if (m) {start = i;m=0;}
	}
	if (sum > smax) {
		smax = sum;
		stop = i+1;
	}
}
fprintf(out,"%d %d %d",smax,start,stop);
fclose(in);
fclose(out);
free(v);
return 0;
}