Cod sursa(job #379622)

Utilizator cvicentiuCiorbaru Vicentiu Marian cvicentiu Data 2 ianuarie 2010 18:44:21
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <fstream>

#define MaxN 6000001

using namespace std;

fstream fin ("ssm.in",ios::in);
fstream fout("ssm.out",ios::out);

int V[MaxN], N;
int sum[MaxN];
int st, dr, maxim, beg, minim, suma;

int main(){

	fin >> N;
	for (int i = 1; i <= N; i++)
		fin >> V[i];
	minim = V[1];
	st = 1;
	suma = -int(2e9);
	dr = 1;

	for (int i = 1; i <= N; i++){
		sum[i] = sum[i-1] + V[i];
		if (suma < sum[i] - minim)
			suma = sum[i] - minim, dr = i, beg = st + 1;
		if (sum[i] < minim)
			st = i, minim = sum[i];
	};

	fout << suma << ' ' << beg << ' ' << dr;

	return 0;
};