Pagini recente » Cod sursa (job #992610) | Cod sursa (job #1045365) | Cod sursa (job #1886383) | Cod sursa (job #1319111) | Cod sursa (job #1476416)
#include <stdio.h>
#include <vector>
#define MAX 500005
#define MAX2 100005
using namespace std;
int n, i, j, k, x, a, b, K, s[MAX];
long long sol;
vector<int> l[MAX2];
int main(){
freopen("divk.in", "r", stdin);
freopen("divk.out", "w", stdout);
scanf("%d%d%d%d", &n, &K, &a, &b);
for(i = 1; i <= n; i++){
scanf("%d", &x);
s[i] = (s[i - 1] + x) % K;
l[s[i]].push_back(i);
}
for(i = 0; i < l[0].size(); i++)
if(l[0][i] >= a && l[0][i] <= b)
sol++;
for(i = 0; i < K; i++)
if(l[i].size() > 1)
for(j = 0; j < l[i].size() - 1; j++)
for(k = j + 1; k < l[i].size(); k++)
if(l[i][k] - l[i][j] >= a && l[i][k] - l[i][j] <= b)
sol++;
printf("%lld\n", sol);
return 0;
}