Cod sursa(job #1196586)
Utilizator | Vintur Cristian Cristian1997 | Data | 8 iunie 2014 14:51:03 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 95 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.58 kb |
using namespace std;
#include <fstream>
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int main()
{
int i, n, a, s=0, smax=0, x=1, xmax, y, ymax, elmax = -2000000000, pozmax;
fin>>n;
for(i=1; i<=n; ++i)
{
fin>>a;
if(a>elmax) elmax = a, pozmax = i;
if(a+s>0) s+=a;
else x=i+1, s=0;
if(s>smax) xmax=x, ymax=i, smax=s;
else if(s==smax && ymax-xmax>i-x) xmax=x, ymax=i;
}
if(smax>0) fout<<smax<<' '<<xmax<<' '<<ymax<<'\n';
else fout<<elmax<<' '<<pozmax<<' '<<pozmax<<'\n';
return 0;
}