Pagini recente » Cod sursa (job #1227362) | Cod sursa (job #2509333) | Cod sursa (job #2804855) | Cod sursa (job #2979580) | Cod sursa (job #1329773)
#include <cstdio>
#include <vector>
using namespace std;
int s[500005];
vector <int> v[100002];
int main() {
freopen("divk.in", "r", stdin);
freopen("divk.out", "w", stdout);
int n, k, a, b, sol = 0, x, m, aux;
scanf("%d%d%d%d", &n, &k, &a, &b);
v[0].push_back(0);
for(int i = 1; i <= n; ++ i) {
scanf("%d", &x);
s[i] = (s[i - 1] + x) % k;
v[s[i]].push_back(i);
}
for(int i = 0; i <= k; ++ i) {
m = v[i].size();
for(int j = 1; j < m; ++ j) {
for(int p = j - 1; p >= 0; -- p) {
aux = v[i][j] - v[i][p];
if(a <= aux && aux <= b) {
++ sol;
//printf("%d %d %d\n", i , v[i][p] + 1, v[i][j]);
}
}
}
}
printf("%d\n", sol);
return 0;
}