Cod sursa(job #3184196)

Utilizator Ciuchilan_BiancaCiuchilan Bianca Ciuchilan_Bianca Data 14 decembrie 2023 19:05:13
Problema Subsecventa de suma maxima Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.56 kb
#include <fstream>
#include <queue>
#include <string>
#include <cstring>

using namespace std;

ifstream fin("ssm.in");
ofstream fout("ssm.out");

int a[600005],n,dp[600005],Max=-100000,prec[600005];

int main()
{
    fin>>n;
    for(int i=1;i<=n;i++) fin>>a[i];

    dp[1]=a[1];
    Max=a[1];
    int k=1;
    prec[1]=1;
    for(int i=2;i<=n;i++)
    {
        if(dp[i-1]<0) dp[i]=a[i],prec[i]=1;
        else dp[i]=dp[i-1]+a[i],prec[i]=prec[i-1]+1;
        if(Max<dp[i]) Max=dp[i],k=i;

    }
    fout<<Max<<" "<<k-prec[k]+1<<" "<<k;

}