Cod sursa(job #703085)

Utilizator VladMSBonta vlad valentin VladMS Data 2 martie 2012 10:51:39
Problema Subsecventa de suma maxima Scor 85
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include<fstream>
#define dim 6000000
using namespace std;
FILE *fin=fopen("ssm.in","r");
FILE *fout=fopen("ssm.out","w");
int i,j,n,k,v[dim],s[dim],lmin,max1,o[dim],pozs,pozf;
int main()
{fscanf(fin,"%d",&n);
 for(i=1;i<=n;++i)
	 fscanf(fin,"%d",&v[i]);

 o[n]=n;
 for(i=n;i>=1;--i)
 {
	 if(v[i]>v[i]+s[i+1])
		 {s[i]=v[i];
		  o[i]=i;
		 }
	 else
		 {s[i]=v[i]+s[i+1];
		  if(i!=n)
			  o[i]=o[i+1];
		 }
  if(s[i]>=max1||pozs==0)
	  {max1=s[i];
	   pozs=i;
	   pozf=o[i];
	  }
		 
 }
 fprintf(fout,"%d %d %d\n",max1,pozs,pozf);
 return 0;
}