Pagini recente » Cod sursa (job #1155157) | Cod sursa (job #96809) | Cod sursa (job #17007) | Cod sursa (job #2800878) | Cod sursa (job #807875)
Cod sursa(job #807875)
#include <iostream>
#include <fstream>
using namespace std;
#define NMAX 500005
int N, K, A, B, X[NMAX];
long long sum[NMAX];
void precompute()
{
sum[0] = 0;
sum[1] = X[1];
for(int i = 1; i <= N; ++i)
sum[i] = sum[i-1] + X[i];
}
long long solve()
{
long long nr = 0;
for(int i = 1; i <= N - A + 1; ++i)
{
for(int j = i + A - 1; (j <= i + B - 1) && (j <= N); ++j)
{
long long s = sum[j] - sum[i-1];
if(s % K == 0)
{
//cout << i << " " << j << endl;
++nr;
}
}
}
return nr;
}
int main()
{
freopen("divk.in", "rt", stdin);
freopen("divk.out", "wt", stdout);
scanf("%d %d %d %d", &N, &K, &A, &B);
for(int i = 1; i <= N; ++i)
scanf("%d", &X[i]);
precompute();
printf("%lld", solve());
return 0;
}