Cod sursa(job #2490157)

Utilizator andreic06Andrei Calota andreic06 Data 9 noiembrie 2019 20:16:09
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <iostream>
#include <fstream>

using namespace std;
const int NMAX = 6 * 1e6;
const long long INFINIT = 1000000000000000000;

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

int main()
{

   int i, n;
   int sp, x;
   int max_sum_i;
   long long max_sum, min_sp;
   int poz_min, pozf, pozl;

   fin >> n;

   max_sum = -INFINIT;
   min_sp = 0;
   poz_min = 0;
   sp = 0;

   for ( i = 1; i <= n; i ++ ){
      fin >> x;
      sp += x;

      max_sum_i = sp - min_sp;

      if ( max_sum < max_sum_i ){ /// actualizez maximul
        max_sum = max_sum_i;
        pozl = i;
        pozf = poz_min;
      }

      if ( min_sp > sp ){ /// calc pt urmatorul i
        min_sp = sp;
        poz_min = i;
      }
   }

   fout << max_sum << ' ' << pozf + 1 << ' ' << pozl;


    return 0;
}