Cod sursa(job #2811784)

Utilizator vlad_dimuVlad Dimulescu vlad_dimu Data 3 decembrie 2021 08:57:01
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream>
using namespace std;

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

int main(){
  int n, i, stc, drc, st, dr;
  long long x, sc, smax;
  fin >> n;
  fin >> x;
  sc = x, st = stc = 1, dr = drc = 1;
  smax = sc;
  for( i = 2; i <= n; i++ ){
    fin >> x;
    if( sc >= 0 ){
      drc++;
      sc += x;
    }
    else
      sc = x, stc = drc = i;
    if( sc > smax )
      smax = sc, st = stc, dr = drc;
    else if( sc == smax && stc < st )
      st = stc, dr = drc;
    else if( sc == smax && stc == st && dr < drc )
      dr = drc;
  }
  fout << smax << ' ' << st << ' ' << dr;
  return 0;
}