Cod sursa(job #1960459)

Utilizator SenibelanMales Sebastian Senibelan Data 10 aprilie 2017 14:05:02
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.51 kb
#include <fstream>

using namespace std;

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

const int NMAX = 500005;
int N, K, A, B;
int v[NMAX];
int r[NMAX];
long long sol;

void Read(){
  in >> N >> K >> A >> B;
  for(int i = 1; i <= N; ++i){
    in >> v[i];
    v[i] = (v[i - 1] + v[i]) % K;
  }
}

void SolveAndPrint(){
  for(int i = A; i <= N; ++i){
    r[v[i - A]]++;
    if(i > B)
      r[v[i - B - 1]]--;
    sol += r[v[i]];
  }
  out << sol << "\n";
}

int main(){
  Read();
  SolveAndPrint();
  return 0;
}