Cod sursa(job #2155561)

Utilizator AndreiBadescuBadescu Andrei-Octavian AndreiBadescu Data 7 martie 2018 22:22:02
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 kb
#include <fstream>

using namespace std;

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

int n, i, j, x, s, t, st, dr, ma, mi = (1 << 30) - 1;

int main()
{
	fin >> n;

	for ( i = 0; i < n; ++i )
	{
		fin >> x;

		s += x;
		t = s - mi;

		if ( t < 0 )
		{
			mi = s;
			j = i + 1;
		}
		else
		{
			if ( t > ma )
			{
				ma = t;
				st = j, dr = i;
			}
			else if ( s == ma && i - j < dr - st )
				st = j, dr = i;
		}
	}

    fout << ma << " " << st + 1 << " " << dr + 1;
}