Cod sursa(job #482792)

Utilizator MarioYCMario Ynocente Castro MarioYC Data 5 septembrie 2010 10:09:35
Problema Subsecventa de suma maxima Scor 80
Compilator c Status done
Runda Arhiva educationala Marime 0.46 kb
#include <stdio.h>

int main(){
	FILE *fin = fopen ("ssm.in", "r");
	FILE *fout = fopen ("ssm.out", "w");
	
	int N,a;
	fscanf(fin,"%d",&N);
	
	fscanf(fin,"%d",&a);
	int ans = a,s = 0,n = 1,best = a,s2 = 0,n2 = 1,i;
	
	for(i = 1;i<N;++i){
		fscanf(fin,"%d",&a);
		
		if(best<0){
			best = a;
			s2 = i;
			n2 = 1;
		}else{
			best += a;
			++n2;
		}
		
		if(best>ans){
			ans = best;
			s = s2;
			n = n2;
		}
	}
	
	fprintf(fout,"%d %d %d\n",ans,s+1,s+n);
	
	return 0;
}