Cod sursa(job #523819)

Utilizator APOCALYPTODragos APOCALYPTO Data 19 ianuarie 2011 14:13:15
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
using namespace std;
#include<iostream>
#include<fstream>

ofstream fout("ssm.out");
int N,a[6000005],dpi,remi,remj,dpj;
void solve()
{int i;
int ans=-0x3f3f3f3f,st,end;
int dpj=-0x3f3f3f3f;
	for(i=1;i<=N;i++)
    {
		if(dpj+a[i]>=a[i])
			 remi=remj,dpi=dpj+a[i];
		else 
			 remi=i,dpi=a[i]; 
		if(ans<dpi)
			 ans=dpi,st=remi,end=i;
		dpj=dpi;
		remj=remi;
	}
	
	
	
	fout<<ans<<" "<<st<<" "<<end<<"\n";
	
}



void cit()
{int i;
	ifstream fin("ssm.in");
	
	fin>>N;
	for(i=1;i<=N;i++)
		fin>>a[i];
	
	
	
	fin.close();
	
}


int main()
{
  cit();
  
  solve();
  fout.close();
  return 0;
}