Pagini recente » Cod sursa (job #2318092) | Cod sursa (job #2671161) | Cod sursa (job #2121849) | Cod sursa (job #2383300) | Cod sursa (job #1113688)
#include <iostream>
#include <fstream>
#define maxn 6000010
using namespace std;
ifstream in("ssm.in");
ofstream out("ssm.out");
int n,v[maxn],s[maxn],best[maxn];
inline int maxim(int a,int b)
{
if(a<b)
return b;
return a;
}
int main()
{
int i,j;
in>>n;
s[0]=0;
for(i=1;i<=n;i++)
{
in>>v[i];
s[i]=s[i-1]+v[i];
}
int minim=s[1];
best[1]=s[1];
for(i=2;i<=n;i++)
{
if(s[i-1]<minim)
minim=s[i-1];
if(v[i]<0)
best[i]=maxim(s[i]-minim,maxim(s[i],best[i-1]));
else
best[i]=maxim(s[i]-minim,s[i]);
}
int m=best[1],poz=1;
for(i=2;i<=n;i++)
if(best[i]>m)
{
m=best[i];
poz=i;
}
out<<m<<" ";
best[0]=1<<30;
for(i=poz;i>=1;i--)
{
if(best[i]<best[i-1])
{
out<<i<<" "<<poz;
return 0;
}
}
return 0;
}