Pagini recente » Cod sursa (job #3288915) | Cod sursa (job #2639296) | Cod sursa (job #739457) | Cod sursa (job #3177641) | Cod sursa (job #2398937)
//Secventa de suma maxima
#include <cstdio>
#include <fstream>
#define dim 8192
#define oo 0x3f3f3f3f
char ax[dim];
int pz;
using namespace std;
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()
{
ifstream f("ssm.in");
ofstream g("ssm.out");
//freopen("ssm.in","r",stdin);
//freopen("ssm.out","w",stdout);
int n,i,v,s=0,j,p,q;
//cit(n);
f >> n;
int sol=-oo;
for(i=1; i <= n; ++i)
{
f >> v;
//cit(v);
if(s < 0) s=v, j=i;
else s+=v;
if(sol < s) sol=s, p=j, q=i;
}
g << sol << " " << p << " " << q << "\n";
//printf("%d %d %d\n", sol, p, q);
return 0;
}