Cod sursa(job #3281404)

Utilizator Wizard_49Bolocan Vlad Cristian Wizard_49 Data 1 martie 2025 13:26:06
Problema Subsecventa de suma maxima Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#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;
}