Pagini recente » Cod sursa (job #1669114) | Cod sursa (job #1669105) | Cod sursa (job #3303853) | Cod sursa (job #1669111) | Cod sursa (job #1669103)
#include<iostream>
#include<fstream>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int nrmax,i,a[6000001],n,inceput[6000001],S[6000001],sfarsit[6000001],smax,x,y;
int main ()
{
fin>>n;
for(i=1;i<=n;i++)
{
fin>>a[i];
}
nrmax=a[1];
S[0]=0;
inceput[0]=1;
inceput[1]=1;
for(i=1;i<=n;i++)
{
if(a[i]+S[i-1]>0)
{
S[i]=S[i-1]+a[i];
inceput[i]=inceput[i-1];
sfarsit[i]=i;
}
else
{
S[i]=0;
inceput[i]=i+1;
}
if(a[i]>nrmax)
{
nrmax=a[i];
x=i;
}
}
for(i=1;i<=n;i++)
{
if(S[i]>smax)
{
smax=S[i];
y=i;
}
}
if(smax>=0)
{
fout<<smax<<" "<<inceput[y]<<" "<<sfarsit[y];
}
else
{
fout<<nrmax<<" "<<x<<" "<<x;
}
fin.close();
fout.close();
return 0;
}