Cod sursa(job #2818721)

Utilizator vladburacBurac Vlad vladburac Data 16 decembrie 2021 19:19:39
Problema Subsecventa de suma maxima Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.62 kb
#include <iostream>
#define INFINIT 2147483647
using namespace std;

int main() {
  FILE *fin, *fout;
  int n, a, s, st, dr, len, i;
  long long smax;
  fin = fopen( "ssm.in", "r" );
  fscanf( fin, "%d", &n );
  s = 0;
  st = dr = len = 0;
  smax = -INFINIT;
  for( i = 0; i < n; i++ ) {
    fscanf( fin, "%d", &a );
    if( s > 0 ) {
      s += a;
      len++;
    }
    else {
      s = a;
      len = 0;
    }
    if( s > smax ) {
      smax = s;
      dr = i;
      st = dr - len;
    }
  }
  fout = fopen( "ssm.out", "w" );
  fprintf( fout, "%lld %d %d", smax, st + 1, dr + 1 );
  return 0;
}