Cod sursa(job #2461608)

Utilizator Asgari_ArminArmin Asgari Asgari_Armin Data 25 septembrie 2019 21:24:31
Problema Subsecventa de suma maxima Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.6 kb
#include <fstream>

using namespace std;

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

const int NMAX = 6000000;
int ssm[NMAX + 1];
int main() {
    int n, i, a, sol, first, sol1, sol2;
    fin >> n;
    first = 1;
    sol = 0;
    for( i = 1; i <= n; ++i ){
      fin >> a;
      if( ssm[i - 1] + a < 0 )
        first = i;
      ssm[i] = max( ssm[i - 1] + a, 0 );
      if( ssm[i] == a )
        first = i;
      if( sol < ssm[i] ){
        sol = ssm[i];
        sol1 = first;
        sol2 = i;
      }
    }
    fout << sol << " " << sol1 << " " << sol2;
    return 0;
}