Cod sursa(job #516121)

Utilizator worstbyteelev gigel worstbyte Data 23 decembrie 2010 11:32:16
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include<fstream>
#define NM 6000001
using namespace std;
ifstream in("ssm.in");
ofstream out("ssm.out");

int n,v[NM],s[NM];

int main(){
	int i,j,smax,sc,first=0,last=0,smin,imin;
	in>>n;
	for(i=1;i<=n;++i){
		in>>v[i];
		s[i]=s[i-1]+v[i];
	}
	smax=INT_MIN;smin=v[1];imin=1;
	for(i=2;i<=n;++i){
		sc=s[i]-smin;
		if(sc>smax){
			smax=sc;
			first=imin;
			last=i;
		}
		if(s[i]<smin){
			smin=s[i];
			imin=i;
		}
	}
	out<<smax<<" "<<first+1<<" "<<last;
	return 0;
}