Cod sursa(job #413654)

Utilizator dobreDobre Catalin Andrei dobre Data 8 martie 2010 21:18:31
Problema Subsecventa de suma maxima Scor 70
Compilator c Status done
Runda Arhiva educationala Marime 0.74 kb
#include <stdio.h>
#include <stdlib.h>

int *v;
int i, ii , jj , n;
int besti, bestj;
int suma_maxima;
int main(void)
{
  FILE* fin = fopen("ssm.in", "r");
  fscanf(fin, "%d" ,&n);
  v = (int*)malloc( sizeof(int) * n );
  for ( i = 0 ; i < n ; i++ )
      fscanf(fin , "%d", &(v[i]));
  
  ii    = 0; jj     = 0;
  besti = 0; bestj  = 0;
  suma_maxima = v[0];
  int sum = v[0];
  for ( i = 1 ; i < n ; i++){
    sum += v[i];
    if ( sum > suma_maxima )
    {
      bestj = i;
      besti = jj;
      suma_maxima   = sum;
    }
    else if ( sum < 0 )
    {
      jj = i + 1;
      sum = 0;
    }
  }
  FILE* fout = fopen("ssm.out", "w");
  fprintf(fout, "%d %d %d", suma_maxima, besti + 1, bestj + 1);
  return 0;
}