Cod sursa(job #2508915)

Utilizator euyoTukanul euyo Data 13 decembrie 2019 14:08:14
Problema Subsecventa de suma maxima Scor 70
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <stdio.h>
#define MAXN 6000000

int S[MAXN];

int main() {
  FILE *fin = fopen( "ssm.in", "r" );
  FILE *fout = fopen( "ssm.out", "w" );
  int n, i, nr, max, st, dr, k;
  long long min;

  fscanf( fin, "%d%d", &n, &nr );
  S[0] = nr;
  for ( i = 1; i < n; ++i ) {
    fscanf( fin, "%d", &nr );
    S[i] = S[i - 1] + nr;
  }
  max = min = k = st = dr = 0;
  for ( i = 0; i < n; ++i ) {
    if ( min > S[i] ) {
      k = i + 1;
      min = S[i];
    }
    if ( max < S[i] - min ) {
      dr = i;
      st = k;
      max = S[i] - min;
    }
  }
  fprintf( fout, "%d %d %d", max, st + 1, dr + 1 );
  fclose( fin );
  fclose( fout );
  return 0;
}