Cod sursa(job #2189466)

Utilizator theo2003Theodor Negrescu theo2003 Data 28 martie 2018 13:06:21
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <fstream>
#include <vector>

using namespace std;

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

vector<int> list;
int size, maxsum, st, dr;

int main() {
	in>>size;
	list.resize(size);
	in>>list[0];
	maxsum = list[0];

	for(int x = 1; x<size; x++)
		in>>list[x];

	for(int x = 0, y = 1, sum = list[0]; y<size; y++) {
		if((sum+list[y])<list[y]) {
			x = y;
			sum = list[y];
		}
		else
			sum+=list[y];

		if((sum>maxsum)||((sum==maxsum)&&((x<st)||((x==st)&&((y-x)>(dr-st)))))) {
			maxsum = sum;
			st = x;
			dr = y;
		}
	}

	out<<maxsum<<' '<<st + 1<<' '<<dr + 1;
}