Pagini recente » Cod sursa (job #399947) | Cod sursa (job #1193474)
#include <cstdio>
#include <climits>
using namespace std;
#define NMAX 6000001
int A[NMAX];
int best,finish,start,finishI,startI,i,N,sol;
int main()
{
freopen("ssm.in","r",stdin);
freopen("ssm.out","w",stdout);
scanf("%d%d",&N,&A[1]);
A[N+1]=INT_MAX;
sol=best=A[1];
finish=start=finishI=startI=1;
for (i=2;i<=N+1;++i)
{
if (i<=N)
scanf("%d",&A[i]);
if (best>sol)
{
sol=best;
startI=start;
finishI=finish;
}
if (best<0)
{
start=finish=i;
best=A[i];
continue ;
}
if (best>=0)
{
++finish;
best+=A[i];
}
}
printf("%d %d %d\n",sol,startI,finishI);
return 0;
}