Cod sursa(job #2778271)

Utilizator bogdanvladmihaiBogdan Vlad-Mihai bogdanvladmihai Data 1 octombrie 2021 01:40:17
Problema Secventa 2 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <bits/stdc++.h>

using namespace std;

ifstream in("divk.in");
ofstream out("divk.out");

const int maxN = (int)5e4;
const int inf = (int)2e9;

int n, k;

int v[maxN + 5];

int sum[maxN + 5];

int main() {
  in >> n >> k;
  for (int i = 1; i <= n; i++) {
    in >> v[i];
  }
  for (int i = 1; i <= n; i++) {
    sum[i] = sum[i - 1] + v[i];
  }
  sum[0] = inf;
  int result = sum[k], minValue = 0;
  pair<int, int> resultPos = make_pair(k, 0);
  for (int i = k + 1; i <= n; i++) {
    if (sum[i - k + 1] < sum[minValue]) {
      minValue = i - k + 1;
    }
    if (result < sum[i] - sum[minValue]) {
      result = sum[i] - sum[minValue];
      resultPos = make_pair(i, minValue);
    }
  }
  out << resultPos.second + 1 << " " << resultPos.first << " " << result << "\n";
  return 0;
}