Cod sursa(job #1939367)

Utilizator DruffbaumPopescu Vlad Druffbaum Data 25 martie 2017 17:55:25
Problema Subsecventa de suma maxima Scor 85
Compilator c Status done
Runda Arhiva educationala Marime 0.61 kb
#include <stdio.h>

#define MAXN 6000000
#define INF 2000000000

int v[MAXN];

int main(void) {
  int n, maxSum, beg, end, s;
  FILE *f = fopen("ssm.in", "r");
  fscanf(f, "%d", &n);
  for (int i = 0; i < n; ++i) {
    fscanf(f, "%d", &v[i]);
  }
  fclose(f);
  maxSum = -INF;
  beg = end = s = 0;
  for (int i = 0; i < n; ++i) {
    if (s < 0) {
      beg = i;
      s = v[i];
    } else {
      s += v[i];
    }
    if (maxSum < s) {
      maxSum = s;
      end = i;
    }
  }
  f = fopen("ssm.out", "w");
  fprintf(f, "%d %d %d\n", maxSum, beg + 1, end + 1);
  fclose(f);
  return 0;
}