Pagini recente » Cod sursa (job #981316) | Cod sursa (job #1253149) | Cod sursa (job #1400876) | Cod sursa (job #631314) | Cod sursa (job #3348400)
#include <fstream>
#include <iostream>
#include <vector>
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
int main() {
int n;
f >> n;
vector<int> dp(n + 1);
vector<long long> v(n + 1);
int l = 0, ssm = 0;
int best_start = 0, best_end = 0;
for(int i = 1; i <= n; i++) {
f >> v[i];
}
dp[1] = v[1];
for(int i = 2; i <= n; i++) {
if(dp[i - 1] >= 0) {
dp[i] = dp[i - 1] + v[i];
}
if(dp[i - 1] < 0) {
dp[i] = v[i];
l = i;
}
if(dp[i] > ssm) {
ssm = dp[i];
best_start = l;
best_end = i;
}
}
g << ssm << " " << best_start << " " << best_end;
}