Cod sursa(job #2647381)
Utilizator | Data | 4 septembrie 2020 11:41:07 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.5 kb |
#include <bits/stdc++.h>
#define Nmax 1000005
using namespace std;
int N, dp, ans, le, ri, x, y;
int v[Nmax];
int main()
{
cin >> N;
for (int i = 1; i <= N; ++i)
cin >> v[i];
dp = ans = v[1];
le = ri = 1;
x = y = 1;
for (int i = 2; i <= N; ++i) {
if (dp + v[i] < v[i]) dp = v[i], le = ri = i;
else dp += v[i], ++ri;
if (ans < dp) ans = dp, x = le, y = ri;
}
cout << ans << " " << x << " " << y << '\n';
return 0;
}