Pagini recente » Cod sursa (job #3357762) | Cod sursa (job #3358340) | Cod sursa (job #3357566) | Cod sursa (job #3358229) | Cod sursa (job #3358858)
#include<iostream>
#include <fstream>
#include <vector>
using namespace std;
vector<int> v;
vector<int> dp;
int main(void) {
ifstream f("ssm.in");
ofstream g("ssm.out");
int n;
f >> n;
v.resize(n);
dp.assign(n, 0);
for (int i = 0; i < n; i++) {
f >> v[i];
}
dp[0] = v[0];
for (int i = 1; i < n; i++) {
dp[i] = max(v[i], dp[i - 1] + v[i]);
}
int max_index = 0;
for (int i = 0; i < n; i++) {
if (dp[max_index] < dp[i]) max_index = i;
}
int min_index = max_index;
while (min_index >= 1 && dp[min_index] - v[min_index] == dp[min_index - 1]) {
min_index--;
}
g << dp[max_index] << ' ' << min_index + 1 << ' ' << max_index + 1;
f.close();
g.close();
return 0;
}