Pagini recente » Cod sursa (job #2460275) | Cod sursa (job #2594706) | Borderou de evaluare (job #2080726) | Cod sursa (job #2602594) | Cod sursa (job #3281404)
#include <iostream>
#include <cmath>
#include <fstream>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
const int NMAX=6e6;
int input[NMAX+1];
int dp[NMAX+1];
int main()
{
int n;
int max_sum,best_i=1,best_j=1;
fin>>n;
for(int i=1;i<=n;i++)
fin>>input[i];
dp[1]=input[1];
max_sum=dp[1];
for(int i=2;i<=n;i++)
{
dp[i]=max(dp[i-1]+input[i],input[i]);
if(dp[i-1]+input[i]>max_sum && dp[i]==dp[i-1]+input[i])
{
max_sum=dp[i];
best_j=i;
}
else if(dp[i]==input[i])
{
if(dp[i]>max_sum)
max_sum=dp[i];
best_i=i;
best_j=i;
}
}
fout<<max_sum<<" "<<best_i<<" "<<best_j;
return 0;
}