Cod sursa(job #2193452)

Utilizator lucametehauDart Monkey lucametehau Data 10 aprilie 2018 10:55:42
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.5 kb
#include <fstream>

using namespace std;

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

const int kmax = 100000;
const int nmax = 500000;

int n, k, a, b;
int nr;
long long sol;

int sp[1 + nmax];
int f[1 + kmax];

int main() {
  cin >> n >> k >> a >> b;
  for(int i = 1; i <= n; i++) {
    cin >> nr;
    sp[i] = (sp[i - 1] + nr) % k;
    if(i >= a)
      f[sp[i - a]]++;
    if(i >= b + 1)
      f[sp[i - b - 1]]--;
    sol += f[sp[i]];
  }
  cout << sol;
  return 0;
}