Cod sursa(job #395340)

Utilizator georgelRector George georgel Data 12 februarie 2010 20:52:28
Problema Subsecventa de suma maxima Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include<fstream>
#define Max 6000001

using namespace std;

long n;
long a[Max],bsol[Max];
int main()
{
	ifstream fin("ssm.in");
	ofstream fout("ssm.out");
long i,max,ifin;
max = 0;
fin>>n;
for(i = 1; i <= n; i++)
	fin>>a[i];
bsol[1] = a[1];
ifin = 1;
for(i = 2; i <= n; i++)
{
	if(bsol[i-1]+a[i] > a[i])
		bsol[i] = bsol[i-1]+a[i];
	else
		bsol[i] = a[i];
	if(bsol[i] > max)
	{
		max = bsol[i];
		ifin = i;
	}
}
fout<<max<<" ";
for(i = ifin; i >= 1 && max > 0; i--)
	max = max - a[i];
fout<<i+1<<" "<<ifin<<"\n";

fin.close();
fout.close();
return 0;
}