Cod sursa(job #2683832)

Utilizator BogdanBurescuBogdan Burescu BogdanBurescu Data 12 decembrie 2020 10:28:08
Problema Subsecventa de suma maxima Scor 55
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.61 kb
#include <fstream>

using namespace std;
ifstream fin ("ssm.in");
ofstream fout ("ssm.out");
int n,i,a,b,maxi,v[6000005],dp[6000005];
int main()
{
    fin>>n;
    for(i=1;i<=n;i++)
        fin>>v[i];
    dp[1]=v[1];
    a=1;
    maxi=dp[1];
    for(i=2;i<=n;i++)
    {
        if(dp[i-1]+v[i]>=0)
                dp[i]=dp[i-1]+v[i];
        if(dp[i-1]+v[i]<0)
            {
                dp[i]=v[i];
                a=i;
            }
        if(dp[i]>maxi)
            {
                maxi=dp[i];
                b=i;
            }
    }
    fout<<maxi<<' '<<a<<' '<<b;
    return 0;
}