Pagini recente » Cod sursa (job #677344) | Cod sursa (job #1561753) | Cod sursa (job #1031799) | Cod sursa (job #1990406) | Cod sursa (job #991936)
Cod sursa(job #991936)
#include<cstdio>
#include <algorithm>
using namespace std;
int v[600001], n, dp[600001],parent[600001];
void citire(){
freopen("ssm.in", "r", stdin);
scanf("%d ",&n);
for(int i = 1; i <= n; ++i)
scanf("%d ",&v[i]);
}
void solve(){
//cu ce incepem?:))
// pai dp[0] = 0, dar asta e deja, deci facem direct dp[i]
// calculezi dp[i]
int rez = 0, poz = 0, x = 0;
for (int i = 1; i <= n; ++i) {
if(dp[i - 1] + v[i] < v[i])
dp[i] = v[i];
else dp[i] = dp[i - 1] + v[i],
parent[i] = i - 1;
if(rez < dp[i])
rez = dp[i],
poz = i;
}
printf ("%d ", rez);
x = poz;
while(parent[x])
x = parent[x];
printf("%d %d\n", x, poz);
}
int main(){
freopen("ssm.out", "w", stdout);
citire();
solve();
}