Pagini recente » Cod sursa (job #899678) | Cod sursa (job #1390424) | Cod sursa (job #1511668) | Cod sursa (job #426925) | Cod sursa (job #2398936)
//Secventa de suma maxima
#include <cstdio>
#define dim 8192
#define oo 0x3f3f3f3f
char ax[dim];
int pz;
inline void cit(int &x)
{
x=0;
while((ax[pz]<'0' || ax[pz]>'9') && ax[pz] != '-')
if(++pz == dim) fread(ax,1,dim,stdin),pz=0;
int neg=0;
if(ax[pz] == '-')
{
neg=1;
if(++pz == dim)fread(ax,1,dim,stdin),pz=0;
}
while(ax[pz] >= '0' && ax[pz] <= '9')
{
x=x*10+ax[pz]-'0';
if(++pz == dim) fread(ax,1,dim,stdin),pz=0;
}
if(neg) x=-x;
}
int main()
{
freopen("ssm.in","r",stdin);
freopen("ssm.out","w",stdout);
int n,i,v,s=0,j,p,q;
cit(n);
int sol=-oo;
for(i=1; i <= n; ++i)
{
cit(v);
if(s < 0) s=v, j=i;
else s+=v;
if(sol < s) sol=s, p=j, q=i;
}
printf("%d %d %d\n", sol, p, q);
return 0;
}