Cod sursa(job #530379)

Utilizator feelshiftFeelshift feelshift Data 7 februarie 2011 17:52:13
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
// http://infoarena.ro/problema/ssm
#include <fstream>
using namespace std;

#define INFINITY 0x3f3f3f3f

ifstream in("ssm.in");
ofstream out("ssm.out");

int main() {
	int lenght,number;
	int sum = -INFINITY,bestSum = -INFINITY;
	int left,tempLeft,right;

	in >> lenght;
	for(int currentPosition=1;currentPosition<=lenght;currentPosition++) {
		in >> number;

		if(sum < 0) {
			sum = number;
			tempLeft = currentPosition;
		}
		else
			sum = sum + number;

		if(bestSum < sum) {
			bestSum = sum;
			left = tempLeft;
			right = currentPosition;
		}
	}

	out << bestSum << " " << left << " " << right;

	in.close();
	out.close();

	return (0);
}