Cod sursa(job #1099467)
| Utilizator | Data | 5 februarie 2014 21:09:00 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.6 kb |
#include <fstream>
#define nmax 6000001
#define inf -10000000
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
int a[nmax],n, best;
int main()
{
f >> n;
for (int i=1;i<=n;i++)
f >> a[i];
int bestsum = inf,test = inf, start = 0, last = 0;
best = a[1] ;
for (int i=1;i<=n;i++)
{
if (best < 0) { best = a[i]; test = i; }
else best += a[i];
if (best > bestsum) {bestsum = best; last = i; start = test; }
}
g << bestsum << " " << start << " " << last;
return 0;
}
