Cod sursa(job #2892068)

Utilizator vlad2009Vlad Tutunaru vlad2009 Data 20 aprilie 2022 17:31:03
Problema Divk Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.54 kb
#include <fstream>

const int MAX_N = 5 * 1e5;
const int MAX_K = 1e5;
long long sp[1 + MAX_N], freq[1 + MAX_K];

int main() {
  std::ifstream fin("divk.in");
  std::ofstream fout("divk.out");
  int n, k, a, b;
  fin >> n >> k >> a >> b;
  for (int i = 1; i <= n; i++) {
    fin >> sp[i];
    sp[i] += sp[i - 1];
    sp[i] %= k;
  }
  long long answer = 0;
  for (int i = a; i <= n; i++) {
    freq[sp[i - a]]++;
    if (i > b) {
      freq[sp[i - b - 1]]--;
    }
    answer += freq[sp[i]];
  }
  fout << answer;
  return 0;
}