Cod sursa(job #911735)

Utilizator toranagahVlad Badelita toranagah Data 11 martie 2013 20:43:48
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <fstream>
using namespace std;

ifstream fin("secv2.in");
ofstream fout("secv2.out");

const int MAX_N = 50100;
const int INF = 1 << 30;

int N, K;
int v[MAX_N];
int sum[MAX_N];

int main() {
  fin >> N >> K;

  for (int i = 1; i <= N; ++i) {
    fin >> v[i];
    sum[i] = sum[i - 1] + v[i];
  }

  int ans = -INF, ansa = INF, ansb = INF;
  int minim = 0, best = ans, start = 1;

  for (int i = K; i <= N; ++i) {
    best = sum[i] - minim;
    if (best > ans) {
      ans = best;
      ansa = start;
      ansb = i;
    }
    if (minim > sum[i - K]) {
      minim = sum[i - K];
      start = i - K + 1;
    }
  }
  fout << ansa << ' ' << ansb << ' ' << ans; 

  return 0;
}