Nu aveti permisiuni pentru a descarca fisierul grader_test4.ok

Cod sursa(job #2490139)

Utilizator andreic06Andrei Calota andreic06 Data 9 noiembrie 2019 20:02:04
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 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 v[NMAX+1], sp[NMAX+1];

int main()
{

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

   fin >> n;
   for ( i = 1; i <= n; i ++ ){
      fin >> v[i];
      sp[i] = sp[i-1] + v[i];
   }

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

   for ( i = 1; i <= n; i ++ ){

      max_sum_i = sp[i] - min_sp;

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

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

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


    return 0;
}