Cod sursa(job #872922)

Utilizator petiVass Peter peti Data 6 februarie 2013 18:54:27
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <iostream>
#include <fstream>
#include <limits>

using namespace std;

int main()
{
	ifstream ifs("ssm.in");
	ofstream ofs("ssm.out");

	int N;
	ifs>>N;
	int *m=new int[N];

	for(int i=0;i<N;i++)
		ifs>>m[i];

	int *best=new int[N];
	int maxsum=0;
	int l=0,r=0;

	best[0]=m[0];
	for(int i=1;i<N;i++){
		if(m[i]<best[i-1]+m[i]){
			best[i]=m[i]+best[i-1];
			r=i;
		}

		if(m[i]>best[i-1]+m[i]){
			best[i]=m[i];
			l=i;
		}

		if(best[i]>maxsum) maxsum=best[i];

   }


//	cout<<"l "<<l+1<<"\n";
//	cout<<"r "<<r<<"\n";
//	cout<<"m "<<maxsum<<"\n";
	ofs<<maxsum<<" "<<l+1<<" "<<r;
	return 0;
}
//     -1 2 3 2 -5 -5 6 7 -5