Cod sursa(job #1889526)

Utilizator medicinedoctoralexandru medicinedoctor Data 22 februarie 2017 19:19:11
Problema Subsecventa de suma maxima Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <fstream>
#include <vector>

using namespace std;

long long s=-8223372036854775808,q,w;
vector <vector <int> > x;

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

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

	for (int i = 0; i < x.size(); i++)
	{
		x[i].resize(x.size() - i);
		cin >> x[i][0] ;
		if (x[i][0] > s)
		{
			s = x[i][0];
			q = w = i ;
		}
	}
}

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

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

int main()
{
	read();

	solve();

	write();
	
	return 0;
}