Cod sursa(job #515043)

Utilizator CyberneticLordMunteanu Valentin CyberneticLord Data 20 decembrie 2010 10:52:32
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.96 kb
/*01.#include<fstream>
02.using namespace std;
03.int s,smax;
04.int p,u,p1,u1,i,k,n,x;
05.ifstream f("ssm.in");
06.ofstream g("ssm.out");
07.int main()
08.{
09.smax=-2000000000;
10.f>>n;   s=0;
11.p=p1=u=u1=k=i=1;
12.for(i=1;i<=n;i++)
13.   {f>>x;
14.    if(s<0){s=0;k=i;}
15.   s+=x;
16.   if(s>smax){smax=s;p=k;u=i;p1=p;u1=u;}
17.     else if(s==smax)if(i-k<u-p){u=i;p=k;}
18.   }
19.g<<smax<<" "<<p<<" "<<u;
20.g.close();f.close();
21.return 0;
22.}  */



#include<fstream>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int n,v[6000000],i,j,k,smax=-2,s,bestSum =-int(2e9), beg=0,end,idx=1,Min;
int main()
{
fin>>n;
for(i=1;i<=n;i++) fin>>v[i];
for(i=1;i<=n;i++) {
v[i]+=v[i - 1];
  if (bestSum < v[i] - Min)
           {bestSum = v[i] - Min, beg = idx, end = i;}
   
        if (Min > v[i])
         {  Min = v[i], idx =i+1; }
   }
 
 

 
    fout<<bestSum<<" "<<beg<<" "<<end;
 
 

 
 
return 0;
}