Pagini recente » Cod sursa (job #138935) | Cod sursa (job #1942382) | Cod sursa (job #2441633) | Cod sursa (job #887098) | Cod sursa (job #558927)
Cod sursa(job #558927)
# include <cstdio>
int v[6000000],suma[6000000],pred[6000000];
int main ()
{
freopen ("ssm.in","r",stdin);
freopen ("ssm.out","w",stdout);
int n,smax=-2000000000,in=1,sf=1;
scanf ("%d",&n);
for (int i=1; i<=n;i++)
scanf ("%d",&v[i]);
suma[n]=v[n];
pred[n]=n;
for (int i=(n-1);i;i--)
{
if (suma[i+1]<=0)
{
suma[i]=v[i];
pred[i]=i;
}
else
{
suma [i]=suma[i+1]+v[i];
pred[i]=pred[i+1];
}
}
for (int i=1; i<=n;i++)
{
if (suma[i]>smax)
{
smax=suma[i];
in=i;
sf=pred[i];
}
if (suma[i]==smax)
if ((sf-in)>(pred[i]-i))
{
smax=suma[i];
in=i;
sf=pred[i];
}
}
printf ("%d %d %d",smax,in,sf);
return 0;
}