Pagini recente » Cod sursa (job #2756052) | Cod sursa (job #583944) | Cod sursa (job #837040) | Cod sursa (job #2021166) | Cod sursa (job #841618)
Cod sursa(job #841618)
#include <cassert>
#include <cstdio>
int v[500005],rem[100005];
int main()
{
int n=0,k=0,a=0,b=0,i=0;
long long sol=0;
assert(freopen("div.in","r",stdin));
assert(freopen("div.out","w",stdout));
assert(scanf("%d%d%d%d",&n,&k,&a,&b));
for (i=1; i<=n; ++i)
{
assert(scanf("%d",&v[i]));
v[i]=(v[i]+v[i-1])%k;
}
for (i=a; i<b; ++i)
{
++rem[v[i-a]];
sol+=rem[v[i]];
}
for (i=b; i<=n; ++i)
{
++rem[v[i-a]];
sol+=rem[v[i]];
--rem[v[i-b]];
}
assert(printf("%lld",sol));
return 0;
}