Cod sursa(job #267434)

Utilizator Addy.Adrian Draghici Addy. Data 27 februarie 2009 12:26:21
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <stdio.h>

int n,i,max,begin,end,ibegin,iend,smax,x;

int main(){

  FILE *f = fopen("ssm.in", "r");
  FILE *g = fopen("ssm.out", "w");

  fscanf(f,"%d",&n);

  fscanf(f,"%d",&x);

  smax = x;
  max = x;
  begin = 1;
  ibegin = 1;
  iend = 1;

  for (i=2; i<=n; i++) {
    fscanf(f,"%d",&x);
    if (smax + x >= x) {
      smax += x;
      end = i;
    }
    else {
      smax = x;
      begin = i;
      end = i;
    }
    if (max < smax) {
      max = smax;
      ibegin = begin;
      iend = end;
    }
  }

  fprintf(g,"%d %d %d\n",max,ibegin,iend);

  fclose(f);
  fclose(g);

  return 0;
}