Cod sursa(job #2958132)
| Utilizator | Data | 24 decembrie 2022 19:47:52 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 5 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.52 kb |
#include <fstream>
using namespace std;
ifstream fin ("ssm.in");
ofstream fout ("ssm.out");
int
main ()
{
int n, i, v[6000001], best[6000001], bestsum, r1 = 1, r2 = 0;
fin >> n;
for (i = 1; i <= n; i++)
fin >> v[i];
best[0] = 0;
bestsum = v[1];
for (i = 1; i <= n; i++)
{
best[i] = v[i];
if (v[i] < best[i - 1] + v[i])
best[i] = best[i - 1] + v[i];
else
r1++;
if (best[i] > bestsum)
{
bestsum = best[i];
r2 = i;
}
}
fout << bestsum << " " << r1 << " " << r2;
return 0;
}
