Cod sursa(job #3351102)

Utilizator robert.stefanRobert Stefan robert.stefan Data 16 aprilie 2026 19:06:05
Problema Subsecventa de suma maxima Scor 95
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
// https://infoarena.ro/problema/ssm

#include<fstream>

using namespace std;

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

int main() {
	int n, v;
	fin >> n;

	int sumMax = 0; // suma maxima
	int sum = 0; // suma sevcentei candidat
	int posInceputSumMax; // pozitia de la care incepe subsecventa de suma maxima
	int posSfarsitSumMax; // pozitia la care se termina subsecventa de suma maxima
	int posInceputSum = 1; 

	for(int i = 1; i <= n; i++) {
		fin >> v;

		sum += v;

		if(sum > sumMax) {
			sumMax = sum;
			posInceputSumMax = posInceputSum;
			posSfarsitSumMax = i;
		}

		if(sum < 0) {
			sum = 0;
			posInceputSum = i+1; // incepe o noua subsecventa candidat pentru subsecventa de suma maxima
		}
	}


	fout << sumMax << " " << posInceputSumMax << " " << posSfarsitSumMax << endl;

	fin.close();
	fout.close();

	return 0;
}