Cod sursa(job #2912864)
Utilizator | Alexandru Andrei asdfd | Data | 11 iulie 2022 13:53:12 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 85 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.63 kb |
#include <iostream>
#include <fstream>
using namespace std;
int n, k, v[6000000], leftt = 1, rightt;
long long int max_sum, act_sum;
int main() {
ifstream fin("ssm.in");
ofstream fout("ssm.out");
fin >> n;
for (int i = 1; i <= n; ++i) {
fin >> v[i];
}
int cnt = 0;
for (int i = 1; i <= n; ++i) {
act_sum += v[i];
if (act_sum > max_sum) {
++cnt;
max_sum = act_sum;
rightt = i;
}
if (act_sum < 0) {
act_sum = 0;
leftt = i + 1;
}
}
fout << max_sum << ' ' << leftt << ' ' << rightt;
return 0;
}