Cod sursa(job #2217392)

Utilizator PetyAlexandru Peticaru Pety Data 30 iunie 2018 12:06:53
Problema Secventa 2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <bits/stdc++.h>

using namespace std;

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

deque<int>dq;
int k, n, sum[50002], x, p2, p1;

int main()
{
  maxx = INT_MIN;
  fin >> n >> k;
  for (int i = 1; i <= n; i++) {
    fin >> x;
    sum[i] = sum[i - 1] + x;
    if (i >= k) {
      while (!dq.empty() && sum[i - k] <= sum[dq.back()])
        dq.pop_back();
      dq.push_back(i - k);
      if (maxx < sum[i] - sum[dq.front()]) {
        maxx = sum[i] - sum[dq.front()];
        p2 = i;
        p1 = dq.front() + 1;
      }
    }
  }
  fout << p1 << " " << p2 << " " << maxx;
  return 0;
}