Pagini recente » Cod sursa (job #2820457) | Cod sursa (job #1572223) | Cod sursa (job #3143974) | Cod sursa (job #1651493) | Cod sursa (job #2969419)
#include <iostream>
#include <algorithm>
#include <fstream>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int v[6000001],dp[6000001];
int main()
{
int n,i,j,sum=0,st=1,dr=1,pozi,pozf,maxn=0,pozim;
int max2=-6000002;
fin>>n;
int ok=0;
for(i=1; i<=n; i++)
{
fin>>v[i];
if(v[i]>max2)
{
max2=v[i];
pozim=i;
}
if(v[i]>=0)
ok=1;
}
if(ok==0)
{
fout<<max2<<" "<<pozim<<" "<<pozim;
}
else
{
for(dr=1; dr<=n; dr++)
{
if(dr>1)
dp[dr]=dp[dr-1]+v[dr];
else
dp[dr]=v[dr];
if(dp[dr]>=0)
{
if(dp[dr]>maxn)
{
maxn=dp[dr];
pozi=st;
pozf=dr;
}
}
else
{
dp[dr]=0;
st=dr+1;
}
}
fout<<maxn<<" "<<pozi<<" "<<pozf;
}
}