Cod sursa(job #1519270)

Utilizator mister_adyAdrian Catana mister_ady Data 7 noiembrie 2015 03:23:47
Problema Subsecventa de suma maxima Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include<iostream>
#include<fstream>
using namespace std;
int N;
int k[600006];
int main()
{
	ifstream f("ssm.in");
	ofstream g("ssm.out");
	f>>N;
	int v[600000];
	int u[600000];
	int min;
	int max = -600000;
	int S = 0, i, j, k1;
	f>>v[1];
	for(i = 2 ; i <= N ; i++)
	{   f>>v[i];
		min = v[1];		
		S = 0;
		for(j = 1 ; j < i ; j++)
		{
			S = S + v[j];
			if ( S < min )
				{min = S; 
				k[i] = j + 1;
				}
		}
		u[i] = S + v[i] - min; 	
		if( u[i] > max )
		{
		max = u[i];
		k1 = i;
		}	
	}
	u[1] = v[1];
    k[1] = 1;
	if ( u[1] > max)
	{max = u[1];
	k1 = 1;
	}    
	g<<max<<" "<<k[k1]<<" "<<k1<<endl;
	return 0;
}