Pagini recente » Cod sursa (job #1218493) | Cod sursa (job #2344591) | Cod sursa (job #2736260) | Cod sursa (job #40186) | Cod sursa (job #1673803)
#include <cstdio>
# define DIM 5000005
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')
if(++poz==DIM)
fread(buff,1,DIM,stdin),poz=0;
while('0'<=buff[poz]&&buff[poz]<='9')
{
numar=numar*10+buff[poz]-'0';
if(buff[++poz]==DIM)
fread(buff,1,DIM,stdin),poz=0;
}
}
int main(void)
{
freopen("divk.in","r",stdin);
freopen("divk.out","w",stdout);
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;
}