Cod sursa(job #1972709)

Utilizator DruffbaumPopescu Vlad Druffbaum Data 23 aprilie 2017 15:32:37
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <cstdio>

const int INF = 2e9;
const int MAXN = 5e4;

int v[MAXN + 1];

int main() {
  int n, k, maxs, maxs2, maxl, maxr, min, sol, l;
  FILE *f = fopen("secv2.in", "r");
  fscanf(f, "%d%d", &n, &k);
  maxs = maxs2 = 0;
  min = INF;
  sol = -INF;
  for (int i = 1; i <= n; ++i) {
    fscanf(f, "%d", &v[i]);
    maxs += v[i];
    if (i >= k) {
      maxs2 += v[i - k];
      if (maxs2 < min) {
        min = maxs2;
        l = i - k + 1;
      }
      if (maxs - min > sol) {
        sol = maxs - min;
        maxl = l;
        maxr = i;
      }
    }
  }
  fclose(f);
  f = fopen("secv2.out", "w");
  fprintf(f, "%d %d %d\n", maxl, maxr, sol);
  fclose(f);
  return 0;
}