Cod sursa(job #1522187)

Utilizator mister_adyAdrian Catana mister_ady Data 11 noiembrie 2015 12:46:17
Problema Subsecventa de suma maxima Scor 55
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 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;
	int S, i, j, k1;
	f>>v[1];
	S = 0;
        u[1] = v[1];
	min = v[1];	
	k[1] = 1;	
	for(i = 2 ; i <= N ; i++)
	{f>>v[i];
	S = S + v[i-1];
		if (S < min)
		{min = S;
                k[i] = i;		
		}
		else
		k[i] = k[i-1];
        u[i] = S + v[i] - min;
	}
	max = u[1];
	k1 = 1;
	for ( i = 2 ; i <= N ; i++)
		if( u[i] > max )
		{
		max = u[i];
		k1 = i;
		}
	g<<max<<" "<<k[k1]<<" "<<k1<<endl;
	return 0;	

}