Pagini recente » Cod sursa (job #1760932) | Cod sursa (job #1171720) | Cod sursa (job #2324345) | Cod sursa (job #1863943) | Cod sursa (job #3183479)
#include "fstream"
#define ll long long int
#define petrisor std::ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
std::ifstream cin("ssm.in");
std::ofstream cout("ssm.out");
const int dim = 6000001;
int v[dim];
ll dp[dim];
void secv_max_dim(int v[], int dimensiune) {
dp[0] = v[0];
ll maxx = dp[0];
int start_index = 0, end_index = 0;
for (int i = 1; i < dimensiune; i++) {
if (v[i] > v[i] + dp[i - 1]) {
dp[i] = v[i];
start_index = i;
} else {
dp[i] = v[i] + dp[i - 1];
}
if (dp[i] > maxx) {
maxx = dp[i];
end_index = i;
}
}
int actual_start = start_index;
for (int i = start_index - 1; i >= 0; i--) {
if (dp[i] == v[actual_start] && v[actual_start] == dp[actual_start]) {
actual_start = i;
start_index = i;
}
}
cout << maxx << " " << start_index + 1 << " " << end_index+1 << "\n";
}
signed main() {
petrisor
ll n;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> v[i];
}
secv_max_dim(v, n);
return 0;
}