Cod sursa(job #515040)

Utilizator CyberneticLordMunteanu Valentin CyberneticLord Data 20 decembrie 2010 10:47:50
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 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;
int n,i,j,p,u,best=-int(2e9),s[6000010],minim;
int main()
{
ifstream f("ssm.in");
ofstream g("ssm.out");
f>>n;
for(i=1;i<=n;i++) f>>s[i];
for(i=1;i<=n;i++)
{ s[i]+=s[i-1];
 
   if(best<s[i]-minim)  { best=s[i]-minim; p=j+1; u=i;}
 
   if(minim>s[i]) {minim=s[i]; j=i;}
 }
g<<best<<" "<<p<<" "<<u;
f.close();
g.close();
return 0;
}