Cod sursa(job #3344588)
| Utilizator | Data | 3 martie 2026 17:37:41 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 95 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.66 kb |
#include <iostream>
#define NMAX 6000000U
int main()
{
int n;
int start_i, end_i, max_sum;
freopen("ssm.in", "r", stdin);
freopen("ssm.out", "w", stdout);
start_i = 0;
end_i = 0;
max_sum = 0;
std::cin >> n;
for (int x, sum = 0, i = 0, j = 0; j < n; ++j) {
std::cin >> x;
if (sum + x < 0) {
sum = 0;
i = j + 1;
} else {
sum += x;
if (sum > max_sum) {
start_i = i;
end_i = j + 1;
max_sum = sum;
}
}
}
std::cout << max_sum << ' ' << start_i + 1 << ' ' << end_i << "\n";
return 0;
}
