Cod sursa(job #2721844)

Utilizator maraboneaMara Bonea marabonea Data 12 martie 2021 12:32:59
Problema Subsecventa de suma maxima Scor 5
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
/**
*/
#include <fstream>

using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
const int nmax=6000010;
int n,x[nmax],dp[nmax],poz[nmax];
void read()
{
    fin>>n;
    for(int i=1;i<=n;i++)
    {
        fin>>x[i];
    }
}
void solve()
{
    for(int i=1;i<n;i++)
    {
        if(dp[i-1]+x[i]>x[i])
        {
            dp[i]=x[i]+dp[i-1];
            poz[i]=poz[i-1];
        }
        else
        {
            dp[i]=x[i];
            poz[i]=i;
        }
    }
}
void print()
{
    int m,poz1,poz2;
    for(int i=1;i<n;i++)
    {
        if(dp[i]>dp[i+1])
        {
            m=dp[i];
            poz1=poz[i];
            poz2=i;
        }
    }
    fout<<m<<" "<<poz1<<" "<<poz2;
}
int main()
{
    read();
    solve();
    print();
   return 0;
}