Cod sursa(job #2051326)
Utilizator | Munteanu Vlad vladm98 | Data | 28 octombrie 2017 19:45:25 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.51 kb |
#include <bits/stdc++.h>
using namespace std;
int main(int argc, char const *argv[])
{
ifstream fin ("ssm.in");
ofstream fout ("ssm.out");
int n, maxim = -1090, left = 0, right = 1, currentSum = 0, st = 0;
fin >> n;
for (int i = 1; i<=n; ++i)
{
int x;
fin >> x;
currentSum += x;
if (currentSum > maxim || maxim == -1090)
{
left = st;
right = i;
maxim = currentSum;
}
if (currentSum < 0)
{
currentSum = 0;
st = i;
}
}
fout << maxim << ' ' << left+1 << ' ' << right;
return 0;
}