Pagini recente » Cod sursa (job #1780543) | Cod sursa (job #337430) | Cod sursa (job #2743418) | Cod sursa (job #455533) | Cod sursa (job #1009741)
#include <iostream>
#include <fstream>
#include <limits>
using namespace std;
int n,pre[6000001], best,i,a,b,c,maxim = std::numeric_limits<int>::min(),v[6000001];
int main()
{
ifstream f("ssm.in");
ofstream g("ssm.out");
f>>n;
for (i=1;i<=n;i++)
f>>v[i];
best=v[n];
pre[n]=n;
for (i=n-1;i>=1;i--)
if (v[i]+best>v[i])
{
best=v[i]+best;
pre[i]=pre[i+1];
if (best>maxim)
{
maxim=best;
a=maxim;
b=i;
c=pre[i+1];
}
}
else
{
if (best>maxim)
{
maxim=best;
a=maxim;
b=i+1;
c=pre[i+1];
}
best=v[i];
pre[i]=i;
}
if (n==1)
{
a=v[n];
b=1;
c=1;
}
g<<a<<" "<<b<<" "<<c;
return 0;
}