Pagini recente » Cod sursa (job #2203858) | Cod sursa (job #2520475) | Cod sursa (job #1014801) | Cod sursa (job #2124026) | Cod sursa (job #3182596)
#include <iostream>
#include <climits>
using namespace std;
int dp[6000005];
int main()
{
cin.tie(0); cin.sync_with_stdio(false);
cout.tie(0); cout.sync_with_stdio(false);
freopen("ssm.in", "r", stdin);
freopen("ssm.out", "w", stdout);
int n, x, suma=0, a=1, b=1, maxim=-INT_MAX, amax, bmax;
cin>>n;
/*
for (int i=1; i<=n; i++) {
cin>>x;
suma+=x;
if (suma>maxim) {
maxim=suma;
b=i;
amax=a;
bmax=b;
}
if (suma<0) {
a=i+1;
suma=0;
}
}
cout<<maxim<<' '<<amax<<' '<<bmax;
*/
bool has_pozitive=false;
for (int i=1; i<=n; i++) {
cin>>dp[i];
if (dp[i]>=0) has_pozitive=true;
dp[i]=max(dp[i-1]+dp[i], dp[i]);
if (dp[i-1]<0) a=i;
if (dp[i]>maxim) {
maxim=dp[i];
b=i;
}
}
if (has_pozitive) cout<<maxim<<' '<<a<<' '<<b;
else cout<<maxim<<' '<<b<<' '<<b;
return 0;
}