Cod sursa(job #274105)

Utilizator recviemAlexandru Pana recviem Data 9 martie 2009 13:58:42
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <fstream>
#include <iostream>
using namespace std;

int n;
int s[6000001];

#define FOR(i,b,c) for (int i = (b); i<(c); i++)
#define abs(a) ((a<0)?(-1*a):(a))

void mainLoop(){
	ifstream fin("ssm.in");
	ofstream fout("ssm.out");

	fin >> n;
	FOR(i,0,n)
		fin >> s[i];

	int min = 0, a=0, b=0;
	long sum = s[0], minS = (2e9), rez = s[0];

	FOR(i,1,n){

		if (sum < minS)
			min = i, minS = sum;

		sum += s[i];
		if (sum - minS > rez){
			rez = sum - minS;
			a = min;
			b = i;
		}
	}

	cout << rez << " " << a+1 << " " << b+1;
	fout.close(), fin.close();
}

int main() {
	mainLoop();
	return 0;
}