Pagini recente » Rating Bibo Bela (Belu99) | Cod sursa (job #2314365) | Cod sursa (job #364707) | Cod sursa (job #57854) | Cod sursa (job #1193692)
#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
int N, K, A, B, v[1<<19], S[1<<19], re[1<<17];
long long rec( int len )
{
memset( re, 0, sizeof( re ) );
long long ret = 0;
if( !len )
return ret;
re[0]++;
for( int i = 1; i < len; i++ )
{
ret += (long long)(re[ S[i] ]),
re[ S[i] ]++;
}
for( int i = len; i <= N; i++ )
{
ret += (long long)(re[ S[i] ]),
re[ S[i] ]++,
re[ S[i - len] ]--;
}
return ret;
}
int main()
{
freopen("divk.in", "r", stdin);
freopen("divk.out", "w", stdout);
int i;
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],
S[i] %= K;
long long ret = rec( B ) - rec( A - 1 );
cout << ret << endl;
return 0;
}