Pagini recente » Cod sursa (job #739109) | Cod sursa (job #2020701) | Cod sursa (job #2675629) | Cod sursa (job #2624762) | Cod sursa (job #2334462)
#include <fstream>
#define nmax 6000004
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
int n,v[nmax],s[nmax],maxim,minim,p1,p2,smax,lp1,lp2;
int main()
{
f>>n;
for (int i=1;i<=n;i++)
{
f>>v[i];
s[i]=s[i-1]+v[i];
}
maxim=minim=smax=s[1];
p1=p2=lp1=lp2=1;
for (int i=2;i<=n;i++)
{
if (maxim<s[i])
{
maxim=s[i];
p2=i;
}
if (minim>s[i])
{
minim=s[i];
p1=i+1;
}
if (maxim-minim>smax)
{
smax=maxim-minim;
lp1=p1;
lp2=p2;
}
else if (maxim-minim==smax)
{
if (p1<lp1)
{
lp1=p1;
lp2=p2;
}
else if (p1==lp1)
{
if (p2-p1<lp2-lp1)
{
lp1=p1;
lp2=p2;
}
}
}
}
g<<smax<<' '<<lp1<<' '<<lp2;
f.close();
g.close();
return 0;
}