Pagini recente » Cod sursa (job #2087754) | Cod sursa (job #859448) | Cod sursa (job #282635) | Cod sursa (job #2842827) | Cod sursa (job #1235874)
#include<stdio.h>
#include<vector>
#define Nmax 100010
using namespace std;
int x,i,n,k,a,b,val,dif,r,N,j;
long long sol;
vector<int> V[Nmax];
int main()
{
freopen("divk.in","r",stdin);
freopen("divk.out","w",stdout);
scanf("%d %d %d %d",&n,&k,&a,&b);
V[0].push_back(0);
for( i = 1 ; i <= n ; ++i )
{
scanf("%d",&x);
r += x;
while (r >= k) r -= k;
V[r].push_back(i);
N=V[r].size();
val=V[r][N-1];
for( j = N-1 ; j >= 0 ; --j )
{
dif = val - V[r][j] ;
if( dif >= a && dif <= b ) ++sol ;
else if( dif > b ) break;
}
}
printf("%lld", sol);
return 0;
}