Pagini recente » Cod sursa (job #905042) | Cod sursa (job #1713933) | Cod sursa (job #2449049) | Cod sursa (job #3266884) | Cod sursa (job #503154)
Cod sursa(job #503154)
#include <cstdio>
#define FIN "divk.in"
#define FOUT "divk.out"
#define MAX 500001
#define KMAX 100001
int N, K, A, B;
int V[MAX], S[MAX], C[KMAX];
long long R;
int main()
{
int i;
freopen(FIN, "r", stdin);
freopen(FOUT, "w", stdout);
scanf("%d%d%d%d", &N, &K, &A, &B);
for (i = 1; i <= N; ++ i)
{
scanf("%d", &V[i]);
S[i] = (S[i - 1] + V[i]) % K;
}
for (i = A; i <= N; ++ i)
{
++ C[S[i - A]];
if (i > B)
-- C[S[i - B - 1]];
R += C[S[i]];
}
printf("%lld\n", R);
}