Pagini recente » Cod sursa (job #2238170) | Cod sursa (job #2393852) | Cod sursa (job #1153645) | Cod sursa (job #1593252) | Cod sursa (job #1916940)
#include <bits/stdc++.h>
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
const int NMax = 6000003;
const int INF = 2000000003;
int n,mx,ans1,ans2,ans3;
int a[NMax],dp[NMax],L[NMax],R[NMax];
int main()
{
f >> n;
for(int i = 1; i <= n; ++i){
f >> a[i];
dp[i] = -INF;
}
dp[0] = -INF;
mx = -INF;
for(int i = 1; i <= n; ++i){
if(dp[i - 1] + a[i] > a[i]){
dp[i] = dp[i - 1] + a[i];
L[i] = L[i - 1];
R[i] = i;
}else{
dp[i] = a[i];
L[i] = i;
R[i] = i;
}
}
for(int i = 1; i <= n; ++i){
// g << dp[i] << ' ';
if(dp[i] > mx){
ans1 = dp[i];
ans2 = L[i];
ans3 = R[i];
mx = dp[i];
}
}
g << ans1 << ' ' << ans2 << ' ' << ans3 << '\n';
return 0;
}