Cod sursa(job #343930)

Utilizator digital_phreakMolache Andrei digital_phreak Data 27 august 2009 20:20:30
Problema Subsecventa de suma maxima Scor 85
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <cstdio>
#include <cstdlib>
#include <ctime>
//using namespace std;

int bestSum,i,n,min,mini,xi,yi,sum[6000000];

int main() {

	freopen("ssm.in","r",stdin);
	freopen("ssm.out","w",stdout);
	
	scanf("%d",&n);
	for (i=0;i<n;++i) scanf("%d",&sum[i]); 
	fprintf(stderr,"%d\n",clock());
	bestSum = -(1<<30);
	
	min = sum[0];
	mini = 1;
	
	for (i=1;i<n;++i) {
		sum[i]+=sum[i-1];
		if ((sum[i] - min) > bestSum) {
			bestSum = sum[i] - min;
			xi = mini+1;
			yi = i+1;
		}
		if (min > sum[i]) {min = sum[i];mini=i+1;}
	}
	fprintf(stderr,"%d\n",clock());
	printf("%d %d %d\n",bestSum,xi,yi);
		
	fclose(stdin);
	fclose(stdout);
	
	return 0;
}