Cod sursa(job #2807001)

Utilizator dianadianapSabina Andreea dianadianap Data 23 noiembrie 2021 11:49:02
Problema Subsecventa de suma maxima Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.59 kb
#include<fstream>
#define in "ssm.in"
#define out "ssm.out"

using namespace std;

int a[6000005], n, dp[6000005], pi, maxi, pimax, pfmax;

ifstream fin(in);
ofstream fout(out);
int main()
{
    fin>>n;
    for(int i=1;i<=n;i++)
        fin>>a[i];
     dp[1] = a[1];
     pi = 1;
     for(int i=2;i<=n;i++)
     {
         if(dp[i-1] + a[i]>a[i])
             dp[i] = dp[i-1] + a[i];
         else
              dp[i] = a[i], pi = i;
          if(maxi < dp[i])
              maxi = dp[i], pfmax = i, pimax = pi;

    }
    fout<<maxi<<" "<<pimax<<" "<<pfmax;
    return 0;
}