Pagini recente » Cod sursa (job #174177) | Cod sursa (job #699057) | Cod sursa (job #1741051) | Cod sursa (job #2165961) | Cod sursa (job #1308243)
#include <cstdio>
#define MaxN 500013
#define MaxK 100013
using namespace std;
FILE *fin=freopen("divk.in","r",stdin);
FILE *fout=freopen("divk.out","w",stdout);
int Sum[MaxN], F[MaxK];
int n, k, a, b, cnt;
void Read()
{
scanf("%d%d%d%d", &n, &k, &a, &b);
int x;
for(int i = 1; i <= n ; ++i )
{
scanf("%d", &x);
Sum[i] = Sum[i - 1] + x;
}
}
void Solve_Dynamic()
{
for(int i = 1 ; i <= n ; ++i )
{
if( i >= a )
++F[Sum[i - a] % k];
if( i > b )
--F[Sum[i - b - 1] % k];
cnt += F[Sum[i] % k];
}
printf("%d", cnt);
}
int main()
{
Read();
Solve_Dynamic();
}