Cod sursa(job #1797294)

Utilizator marta_diannaFII Filimon Marta Diana marta_dianna Data 4 noiembrie 2016 11:00:59
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>
#include <deque>
#include <vector>

using namespace std;

ifstream f("secv2.in");
ofstream g("secv2.out");

int n, k, start_position, end_position;
long long solution = -25001 * 50001;
vector<int> sum;

void read() {
  long long x;
  f >> n >> k >> x;
  sum.push_back(x);
  for (int i = 1; i < n; ++i) {
    f >> x;
    sum.push_back(sum.back() + x);
  }
}

void solve() {
  long long minimum = 0;
  start_position = -1;
  end_position = k - 1;
  solution = sum[k - 1];
  for (int i = k; i < n; ++i) {
    if (minimum > sum[i - k]) {
      minimum = sum[i - k];
      start_position = i - k;
    }
    if (sum[i] - minimum > solution) {
      solution = sum[i] - minimum;
      end_position = i;
    }
  }
  g << start_position + 2 << " " << end_position + 1 << " " << solution << "\n";
}

int main() {
  read();

  solve();

  f.close();
  g.close();
  return 0;
}