Pagini recente » Cod sursa (job #1638225) | Cod sursa (job #98104) | Cod sursa (job #3265681) | Cod sursa (job #370654) | Cod sursa (job #2398952)
//Secventa de suma maxima
#include <cstdio>
#include <fstream>
#define dim 8192
#define oo 0x3f3f3f3f
char ax[dim];
int pz;
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
inline void cit(int &x)
{
x=0;
while((ax[pz]<'0' || ax[pz]>'9') && ax[pz] != '-')
if(++pz == dim) f.read(ax, dim),pz=0;
int neg=0;
if(ax[pz] == '-')
{
neg=1;
if(++pz == dim)f.read(ax, dim),pz=0;
}
while(ax[pz] >= '0' && ax[pz] <= '9')
{
x=x*10+ax[pz]-'0';
if(++pz == dim) f.read(ax, dim),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);
//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;
}