Cod sursa(job #274270)
Utilizator | Data | 9 martie 2009 16:25:00 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.46 kb |
#include <fstream.h>
#include <values.h>
#define nmax 6000005
#define inf (MAXLONG-1000)
ifstream fin("t3.in");
ofstream fout("ssm.out");
long n,s[nmax],min,k,jj,j,i,best=-inf;
int main()
{fin>>n;
for (i=1;i<=n;i++) {fin>>s[i]; s[i]=s[i]+s[i-1];}
for (i=1;i<=n;i++)
{if (s[i]-min>best)
{best=s[i]-min;
k=i;
j=jj;
}
if (min>s[i]) {min=s[i]; jj=i+1;};
}
fout<<best<<" "<<j<<" "<<k;
fout.close();
return 0;
}