Cod sursa(job #2201237)

Utilizator emiemiEmi Necula emiemi Data 3 mai 2018 23:00:14
Problema Subsecventa de suma maxima Scor 85
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>

using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");

int main() {
	int i, n, *v;
	int maxi = -2000000000;
	int p, start = -1 , end, act;

	f >> n;
	v = (int *)malloc((n + 1) * sizeof(int));

	int mini = -2000000000;
	for (i = 1; i <= n; ++i) {
		f >> v[i];
		if (v[i] > mini) {
			mini = v[i];
			p = i;
		}	
	}
		

	int sum = 0;
	act = 1;
	for (i = 1; i <= n; ++i) {
		if (sum + v[i] < 0) {
			act = i + 1;
			sum = 0;
		} else if (sum + v[i] > 0) {
			sum += v[i];
			if (sum > maxi) {
				maxi = sum;
				start = act;
				end = i;
			}
		}
	}

	if (start == -1) {
		g << mini << ' ' << i << ' ' << i << '\n';
	} else {
		g << maxi << ' ' << start << ' ' << end << '\n';
	}

	return 0;
}