Cod sursa(job #1889583)

Utilizator medicinedoctoralexandru medicinedoctor Data 22 februarie 2017 19:54:12
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <fstream>
#include <vector>
#define nv -8223372036854775808

using namespace std;

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

long long s = nv, q, w;
vector <int> a;

void read()
{
	int n;
	
	cin >> n;
	a.resize(n);

	cin >> a[0];
	for (int i = 1; i < a.size(); i++)
		cin >> a[i], a[i] += a[i-1];
}

void solve()
{
	for (int i = 0, idx, min = 0; i < a.size(); i++)
	{
		if (s < a[i] - min)
			s = a[i] - min, q = idx + 1, w = i;
		if (min > a[i])
			min = a[i], idx = i;
	}
}

void write()
{
	cout << s << ' ' << q+1 << ' ' << w+1 ;
}

int main()
{
	read();

	solve();

	write();
	
	return 0;
}