Cod sursa(job #2831873)

Utilizator alexlazuLazureanu Alexandru Ioan alexlazu Data 12 ianuarie 2022 12:41:33
Problema Subsecventa de suma maxima Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <iostream>
#include <fstream>
#include <math.h>

using namespace std;

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

int main()
{
	// s incepe 0 se schimba cand <0 , se schimba inceput si sfarsit ia ultima valoare
	long long n, inc, sf, s, smax = -2000001,x;
	bool all_negative = true;
	in >> n;
	s = 0;
	inc = 1;
	sf = 0;
	for (int i = 1; i <= n; i++) {
		in >> x;
		if (s < 0) {
			s = 0;
			inc = i;
		}
		s = s + x;
		if (s > smax) {
			smax = s;
			sf = i;
		}
		if (x > 0)
			all_negative = false;
	}
	if(all_negative)
		out << smax << " " << sf << " " << sf;
	else
		out << smax << " " << inc << " " << sf;
}