Cod sursa(job #536052)
Utilizator | FMI Trifan Mircea Mihai romircea2010 | Data | 18 februarie 2011 09:44:46 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 95 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.59 kb |
#include <fstream>
using namespace std;
int a[6000001], n;
int main ()
{
ifstream f("ssm.in");
f>>n;
int i;
for (i=0; i<n; i++)
f>>a[i];
f.close();
int s, smax, j, imax, l, lmax;
s=smax=i=imax=l=lmax=0;
for (j=0; j<n; j++)
{
s=s+a[j];
l++;
if (s>=smax)
{
if (smax==s && l<lmax)
{
imax=i;
lmax=l;
}
else
{
smax=s;
imax=i;
lmax=l;
}
}
if (s<0)
{
s=0;
i=j;
l=0;
}
}
ofstream g("ssm.out");
g<<smax<<" "<<imax+2<<" "<<imax+lmax+1;
g<<"\n";
g.close();
return 0;
}