Pagini recente » Monitorul de evaluare | Istoria paginii runda/strong_contest/clasament | Monitorul de evaluare | Istoria paginii utilizator/dulgheriu | Cod sursa (job #2009546)
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <ctime>
using namespace std;
ifstream fin("divk.in");
ofstream fout("divk.out");
int n, k, a, b, c, sum, v[500004], f[100005], r[500005], j, i, nr;
int main () {
fin >> n >> k >> a >> b;
nr = sum = 0;
for (i = 1; i <= n; i++)
{
fin >> v[i];
v[i] += v[i-1];
v[i-1] %= k;
}
v[n] %= k;
c = b-a+1;
for (i = 1; i <= n; i++)
{
f[v[i]]++;
if (i > c) f[v[i-c]]--;
if (i+a <= n) r[i+a] = f[v[i+a]];
if (v[i] == 0 && i <= b && i >= a)
r[i]++;
sum += r[i];
}
fout << sum << "\n";
}