Pagini recente » Cod sursa (job #942248) | Cod sursa (job #2075259) | Cod sursa (job #2269165) | Cod sursa (job #618753) | Cod sursa (job #1673815)
#include <cstdio>
# define DIM 100000000
using namespace std;
int nr,n,k,a,b,x,rest[500005],i,j,sol[100005];
long long soltot;
int poz=0;
char buff[DIM];
void citire(int &numar)
{
numar=0;
while(buff[poz]<'0'||buff[poz]>'9') poz++;
while('0'<=buff[poz]&&buff[poz]<='9')
numar=numar*10+buff[poz++]-'0';
}
int main(void)
{
freopen("divk.in","r",stdin);
freopen("divk.out","w",stdout);
fread(buff,1,DIM,stdin),poz=0;
citire(n);
citire(k);
citire(a);
citire(b);
for(i=1;i<=n;i++)
{
citire(x);
rest[i]=(rest[i-1]+x)%k;
if(i>=a)
sol[rest[i-a]]++;
soltot+=sol[rest[i]];
if(i>=b)
sol[rest[i-b]]--;
}
printf("%lld",soltot);
return 0;
}