Cod sursa(job #1067869)

Utilizator IonMosnoiIon Mosnoi IonMosnoi Data 27 decembrie 2013 16:40:52
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include<fstream>
const unsigned maxn = 6000000;
using namespace std;
 
 signed  a[maxn],n,b[maxn],f,m,s=0;
 int max1;
 

main(){
  ifstream fin("ssm.in");
  ofstream fout("ssm.out"); 

fin>>n;
a[0]=0;
int x;

for(int i=1;i<=n;i++){
fin>>x;
a[i]=a[i-1]+x;	
}


max1 = 1;
f = -maxn;
m=0;
for(int i=1;i<=n;i++){
	b[i]=a[i]-m;
	if(a[i]<m){
	
	m=a[i];
	}
	if(f<b[i]){
		max1=i;f=b[i];
	}	
}

int i=max1;
while(s!=f){
	s+=a[i]-a[i-1];
	i--;
}

if(f==0)i=max1-1;

fout<<f<<" "<<i+1<<" "<<max1;

  
 
  fin.close(); fout.close();  
}