Cod sursa(job #1453635)
Utilizator | Alexandru Lilian alex.bullz | Data | 24 iunie 2015 00:14:16 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 95 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.65 kb |
#include <iostream>
#include <fstream>
#include <vector>
int main() {
int a, n, start = -1, end = -1, sum = -1, maxSum = -99999, st;
std::ifstream fin ("ssm.in");
std::ofstream fout ("ssm.out");
std::vector<int> v;
fin >> n;
for (int i = 1; i <= n; ++i) {
fin >> a;
v.push_back (a);
}
for (int i = 1; i <= n; ++i) {
if (sum < 0) {
sum = 0;
st = i + 1;
}
if (sum > maxSum) {
maxSum = sum;
start = st;
end = i;
}
sum += v[i];
}
fout << maxSum << " " << start << " " << end << "\n";
return 0;
}