Pagini recente » Cod sursa (job #1578403) | Cod sursa (job #1257689) | Cod sursa (job #1083775) | Cod sursa (job #2865799) | Cod sursa (job #2616532)
#include <cstdio>
using namespace std;
int v[500005], rk[500005];
int main()
{
freopen("divk.in", "r", stdin);
freopen("divk.out", "w", stdout);
int n, k, a, b;
long long ans = 0;
scanf("%d%d%d%d", &n, &k, &a, &b);
for(int i = 1; i <= n; i++) scanf("%d", &v[i]), v[i] = ((v[i] % k) + v[i - 1]) % k;
for(int i = a; i <= b; i++)
rk[v[i - a]]++, ans += rk[v[i]];
for(int i = b + 1; i <= n; i++)
rk[v[i - a]]++, rk[v[i - b - 1]]--, ans += rk[v[i]];
printf("%d", ans);
return 0;
}