Pagini recente » Cod sursa (job #2418223) | Cod sursa (job #1898813) | Cod sursa (job #1092953) | Cod sursa (job #716692) | Cod sursa (job #2503849)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in ("ssm.in");
ofstream out ("ssm.out");
const int N=6000002;
long long s[N],d[N];
int v[N];
int main()
{
int n;
in>>n;
for (int i=1;i<=n;i++)
in>>v[i];
d[1]=v[1];
for (int i=2;i<=n;i++)
if (d[i-1]+v[i]>v[i])
d[i]=d[i-1]+v[i];
else d[i]=v[i];
s[n]=v[n];
for (int i=n-1;i>0;i--)
if (s[i+1]+v[i]>v[i])
s[i]=s[i+1]+v[i];
else s[i]=v[i];
long long maxx=0,s1,s2;
int ind;
for (int i=1;i<=n;i++)
if (s[i]+d[i]-v[i]>maxx)
{
maxx=s[i]+d[i]-v[i];
ind=i;
s1=d[i];
s2=s[i];
}
out<<maxx<<' ';
int inc=ind,sf=ind;
while (s1)
{
s1-=v[inc];
inc--;
}
inc++;
out<<inc<<' ';
while (s2)
{
s2-=v[sf];
sf++;
}
sf--;
out<<sf;
return 0;
}