Cod sursa(job #1619747)
Utilizator | Data | 28 februarie 2016 18:54:29 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.71 kb |
#include <fstream>
#define NMax 6000001
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int a[NMax], n;
int sum;
int main()
{
int i, l, r, aux, s;
fin >> n;
for (i = 1; i <= n; ++ i)
fin >> a[i];
s = 0;
sum = -int(2e9);
aux = 1;
for (i = 1; i <= n; ++ i)
{
if (s < 0)
{
s = a[i];
aux = i;
}
else
s += a[i];
if (sum < s)
{
sum = s;
l = aux;
r = i;
}
}
fout << sum << " " << l << " " << r << "\n";
fin.close();
fout.close();
return 0;
}