Cod sursa(job #2189464)

Utilizator theo2003Theodor Negrescu theo2003 Data 28 martie 2018 12:59:09
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 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];

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

	for(int x = 0, y = 0, sum = 0; y<size; y++) {
		if(sum<0){
			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;
}