Pagini recente » Monitorul de evaluare | Cod sursa (job #169767) | Cod sursa (job #84938) | Cod sursa (job #1050914) | Cod sursa (job #2009251)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("divk.in");
ofstream fout("divk.out");
int n, k, a, b, c, sum, v[500004], f[500005], r[500005], s[500005], j, i, nr, x, y;
int main () {
fin >> n >> k >> a >> b;
x = a; y = b;
for (i = 1; i <= n; i++)
{
fin >> v[i];
s[i] += s[i-1]+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";
}