Cod sursa(job #2778266)

Utilizator bogdanvladmihaiBogdan Vlad-Mihai bogdanvladmihai Data 1 octombrie 2021 01:29:05
Problema Divk Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.56 kb

#include <bits/stdc++.h>

using namespace std;

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

using ll = long long;

const int maxN = (int)5e5;

int n, k, a, b;

int sum[maxN + 5], fr[maxN + 5];

int main() {
  in >> n >> k >> a >> b;
  for (int i = 1; i <= n; i++) {
    int x;
    in >> x;
    sum[i] = (sum[i - 1] + x) % k;
  }
  ll result = (ll)0;
  for (int i = a; i <= n; i++) {
    result += (ll)fr[sum[i]];
    fr[sum[i - a + 1]]++;
    if (i >= b) {
      fr[sum[i - b]]--;
    }
  }
  out << result << "\n";
  return 0;
}