Cod sursa(job #1994629)
Utilizator | Data | 25 iunie 2017 15:32:22 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 70 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.49 kb |
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
long long n, x, sum = 0, Max = -2000000000;
int main()
{
f >> n;
long long left = 1, right;
for (long long i = 1;i <= n;i++)
{
f >> x;
sum += x;
if (sum < 0)
{
left = i + 1;
sum = 0;
}
else
if (Max < sum)
{
Max = sum;
right = i;
}
}
g << Max << " " << left << " " << right << "\n";
f.close();
g.close();
return 0;
}