Cod sursa(job #344627)

Utilizator digital_phreakMolache Andrei digital_phreak Data 30 august 2009 21:16:58
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <iostream>
#include <fstream>
#include <cstdio>
#include <cstdlib>
#include <ctime>
using namespace std;

int bestSum,i,n,_min,mini,xi,yi,sum[6000000];
ifstream fin("ssm.in");
ofstream fout("ssm.out");

int main() {
	ios::sync_with_stdio(false);
	
	fin >> n;
	for (i=0;i<n;++i) fin >> 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());
	fout << bestSum << xi << yi << "\n";
		
	fclose(stdin);
	fclose(stdout);
	
	return 0;
}