Pagini recente » Cod sursa (job #207404) | Cod sursa (job #596377) | Cod sursa (job #348230) | Cod sursa (job #1271811) | Cod sursa (job #1005511)
#include <iostream>
#include <fstream>
#define nmax 6000005
#define inf 1<<30
using namespace std;
int n, contor = 0, S = 0, sol = -inf, a, b, opt1, opt2;
int v[nmax], dp[nmax], pre[nmax];
int main() {
ifstream f("ssm.in");
ofstream g("ssm.out");
f>>n;
for(int i=1; i<=n; i++) f>>v[i];
dp[n] = v[n];
pre[n] = n;
for(int i=n-1; i>=1; i--) {
opt1 = v[i];
opt2 = v[i] + dp[i+1];
if(opt1 >= opt2) {
dp[i] = opt1;
pre[i] = i;
}
else {
dp[i] = opt2;
pre[i] = pre[i+1];
}
}
for(int i=1; i<=n; i++)
if(dp[i] > sol) {
sol = dp[i];
a = i;
b = pre[i];
}
g<<sol<<" "<<a<<" "<<b<<"\n";
return 0;
}