Pagini recente » Cod sursa (job #303115) | Cod sursa (job #46661) | Cod sursa (job #204227) | Cod sursa (job #2652449) | Cod sursa (job #525164)
Cod sursa(job #525164)
//Apocalypto
//Subsecventa de suma maxima
//varianta cu sume partiale
//
using namespace std;
#include<iostream>
#include<fstream>
#define oo 0x3f3f3f3f
ofstream fout("ssm.out");
int N,a[6000006],remi,final=0,fi,ans=-oo,minim=0;
void solve()
{ int i,minim=oo,scur=0,x,st,end;
for(i=1;i<=N;i++)
{ scur=scur+a[i];
x=scur-minim;
remi=final+1;
fi=i;
if(ans<x)
{ans=x;
st=remi;
end=fi;
}
if(minim>scur)
{
minim=scur;
final=i;
}
//minim=min(minim,scur);
}
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;
}