Cod sursa(job #274043)

Utilizator recviemAlexandru Pana recviem Data 9 martie 2009 12:52:58
Problema Subsecventa de suma maxima Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 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++)

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

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

	int min = 0, sum= 0, rez = s[0], minS = (1<<32), a=0, b=0;
	FOR(i,0,n){
		if (sum + s[i] < minS){
			min = i;
			minS = sum;
		}
		sum += s[i];
		if (sum - minS > rez){
			rez = sum - minS;
			a = min;
			b = i;
		}
	}

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

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