Pagini recente » Cod sursa (job #1673607) | Cod sursa (job #2935301) | Cod sursa (job #2106673) | Cod sursa (job #2897132) | Cod sursa (job #465630)
Cod sursa(job #465630)
#include <cstdio>
int v[10004],dr[100004],st[100004],s[500004];
int main()
{
int n,a,b,k,i,j,x,nr=0;
freopen("divk.in","r",stdin);
freopen("divk.out","w",stdout);
scanf("%d %d %d %d",&n,&k,&a,&b);
v[0]=1;dr[0]=1;
for (i=1;i<=n;++i)
{
scanf("%d",&s[i]);
s[i]=(s[i]+s[i-1])%k;
while (st[s[i]]<i-b)
{
if (s[st[s[i]]]==s[i]) --v[s[i]];
++st[s[i]];
}
while (dr[s[i]]<=i-a)
{
if (s[dr[s[i]]]==s[i]) ++v[s[i]];
++dr[s[i]];
}
nr+=v[s[i]];
}
printf("%d",nr);
return 0;}