Cod sursa(job #1953124)
| Utilizator | Data | 4 aprilie 2017 17:34:56 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 95 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.68 kb |
#include <fstream>
#define NMAX 6000000
using namespace std;
ifstream fin ("ssm.in");
ofstream fout ("ssm.out");
long int N, i, S, Smax, pozinc, inc, pozsf;
long int a[NMAX];
int main()
{
fin >> N;
for (i=1; i<=N; i++) fin >> a[i];
inc=1;
for (i=1; i<=N; i++)
{
S=S+a[i];
if (S>Smax)
{
Smax=S;
pozsf=i;
pozinc=inc;
}
else
if (S<0)
{
S=0;
inc=i+1;
}
}
fout << Smax << " " << pozinc << " " << pozsf;
return 0;
}
