Pagini recente » Cod sursa (job #1351636) | Cod sursa (job #2831514) | Cod sursa (job #1454231) | Cod sursa (job #2757751) | Cod sursa (job #424968)
Cod sursa(job #424968)
#include<stdio.h>
#include<vector>
#define Nmax 100010
using namespace std;
int x,i,n,k,a,b,val,dif,r,N,j,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);
for(i=1;i<=n;i++)
{
scanf("%d",&x);
r=(r+x)%k;
if(!r && i>=a && i<=b) sol++;
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("%d",sol);
return 0;
}