Cod sursa(job #448822)
Utilizator | cristescu liviu ms-ninja | Data | 4 mai 2010 19:55:24 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 5 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.58 kb |
#include <fstream>
using namespace std;
int main()
{
long n, i, a, s, max=0, re, re1;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
fin>>n;
s=0;
long contor=0;
for(i=1;i<=n;++i)
{
fin>>a;
if(s==0)
re=i;
s+=a;
if(s>max)
{
max=s;
++contor;
}
else
{
re1=i;
}
if(s<0)
{
s=0;
contor=0;
}
if(contor+re>re1)
re1=contor+re;
}
if(s>=max)
{
max=s;
++re1;
}
fout<<max<<" " <<re <<" " <<re1;
return 0;
}