Pagini recente » Cod sursa (job #175382) | Cod sursa (job #1725583) | Cod sursa (job #1586822) | Cod sursa (job #620823) | Cod sursa (job #969886)
Cod sursa(job #969886)
//http://www.infoarena.ro/problema/ssm
#include<fstream>
using namespace std;
const int MAXN=6000001;
int s[MAXN],best[MAXN];
int n,maxim,incmax,sfmax,inc,sf;
void citire()
{
ifstream fin("ssm.in");
fin>>n;
for (int i=1;i<=n;++i)
fin>>s[i];
}
void rezolvare()
{
int i;
inc=1;sf=1;
incmax=1;sfmax=1;
for (i=1;i<=n;++i)
{
if (best[i-1]+s[i]>s[i])
{
best[i]=best[i-1]+s[i];
++sf;
}
else
{
best[i]=s[i];
inc=sf=i;
}
if (best[i]>maxim)
{
maxim=best[i];
incmax=inc;
sfmax=sf;
}
else if (best[i]==maxim && (sf-inc)<(sfmax-incmax))
{
incmax=inc;
sfmax=sf;
}
}
}
void afisare()
{
ofstream fout("ssm.out");
fout<<maxim<<' '<<incmax<<' '<<sfmax<<'\n';
fout.close();
}
int main()
{
citire();
rezolvare();
afisare();
return 0;
}