Cod sursa(job #541825)

Utilizator cnt_tstcont teste cnt_tst Data 25 februarie 2011 14:42:01
Problema Subsecventa de suma maxima Scor 85
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <iostream.h>
#include <values.h>
#include <fstream.h>
int V[6000001],D[6000001],i,n,aux,max,pmax,umax,P[6000001];
int main()
{
	ifstream f("ssm.in");
	ofstream g("ssm.out");
	f>>n;
	max=-INT_MAX;
	for (i=1;i<=n;i++)
	{
		f>>V[i];
	}
	D[1]=V[1];
	for (i=2;i<=n;i++)
	{
		D[i]=V[i];
		P[i] = i;
		if(D[i-1]+V[i]>=D[i])
		{
			D[i]=D[i-1]+V[i];
			P[i] = P[i-1];
		}
		if (D[i]>max) {
			max = D[i];
			pmax = P[i];
			umax = i;
		} else
			if (D[i] == max) {
				if (P[i]<pmax) {
					pmax = P[i];
					umax = i;
				} /*else
					if(P[i] == pmax)
						if (i<u)
				*/
			}
		
	}
	g<<max<<" "<<pmax<<" "<<umax;
	
	f.close();
	g.close();
	return 0;
}