Pagini recente » Istoria paginii utilizator/maria19 | Diferente pentru olimpici intre reviziile 112 si 111 | Cod sursa (job #3222743) | Cod sursa (job #2829880) | Cod sursa (job #2333040)
#include <cstdio>
using namespace std;
long long v[6000001];
int main()
{
long long m,s,em;
int n,i,ok=0,st,dr,stm,poz=1,l,ap=0;
freopen("ssm.in","r",stdin);
freopen("ssm.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%lld",&v[i]);
if(i==1)
em=v[1];
if(v[i]>0)
ok=1;
if(v[i]>em)
{
em=v[i];
poz=i;
}
}
s=0;
m=0;
l=0;
for(i=1;i<=n;i++)
{
if(s+v[i]>=0)
{
s+=v[i];
l++;
}
else
{
s=0;
l=0;
}
if(s>m)
{
m=s;
dr=i;
st=dr-l+1;
}
}
if(ok==1)
printf("%lld %d %d",m,st,dr);
else
printf("%lld %d %d",em,poz,poz);
return 0;
}