Cod sursa(job #3206044)
Utilizator | Dinuta Eduard Stefan TeddyDinuta | Data | 21 februarie 2024 15:36:07 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.67 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream in("apm.in");
ofstream out("apm.out");
long long n, a[6000005];
int main()
{
in >> n;
for (int i = 1; i <= n; i++) {
in >> a[i];
}
long long Min = 0, pmin = 0;
long long l = 0, r = 0;
long long curr = 0;
long long ans = -1e9;
for (int i = 1; i <= n; i++) {
curr += a[i];
if (curr - Min > ans) {
ans = curr - Min;
l = pmin + 1;
r = i;
}
if (curr < Min) {
Min = curr;
pmin = i;
}
}
out << ans << " " << l << " " << r << '\n';
return 0;
}