Cod sursa(job #3353810)

Utilizator robert.stefanRobert Stefan robert.stefan Data 11 mai 2026 22:19:04
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.94 kb
// https://infoarena.ro/problema/ssm

#include<fstream>

using namespace std;

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

int n;
int v[6000001];

int main() {
	fin >> n;

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

	int inceputSecvCandidat = 1; // indicele din vectorul v la care incepe o secventa candidat

	// initializam secventa de suma maxima cu primul element din vector
	int inceputSecvMax = 1;
	int sfarsitSecvMax = 1;
	int sumaSecvMax = v[1];

	int sumaSecvCandidat = 0; // suma secventei candidat

	for(int i = 1; i <= n; i++) {
		sumaSecvCandidat += v[i];

		if(sumaSecvCandidat > sumaSecvMax) {
			inceputSecvMax = inceputSecvCandidat;
			sfarsitSecvMax = i;
			sumaSecvMax = sumaSecvCandidat;
		}

		if(sumaSecvCandidat < 0) {
			inceputSecvCandidat = i + 1;
			sumaSecvCandidat = 0;
		} else {
			
		}
	}

	fout << sumaSecvMax << " " << inceputSecvMax << " " << sfarsitSecvMax << "\n";

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

	return 0;
}