Pagini recente » Cod sursa (job #1200653) | Cod sursa (job #1934160) | Cod sursa (job #554327) | Cod sursa (job #400545) | Cod sursa (job #260634)
Cod sursa(job #260634)
#include<stdio.h>
FILE *fin=freopen("divk.in","r",stdin);
FILE *fout=freopen("divk.out","w",stdout);
int m[2][500001],n,k,a,b,t;
int x[500001];
void citire()
{
scanf("%d%d%d%d",&n,&k,&a,&b);
int i;
for(i=1;i<=n;i++)
{
scanf("%d",&x[i]);
m[1][i]=m[1][i-1]+x[i];
if(i>=a)
m[1][i]-=x[i-a];
if(m[1][i]%k==0) t++;
}
fclose(fin);
}
void rezolva()
{
int i,crnt,prev,j;
crnt=1;
for(i=a+1;i<=b;i++)
{
prev=crnt;
crnt=!crnt;
for(j=i;j<=n;j++)
{
m[crnt][j]=0;
m[crnt][j]=(m[prev][j]%k+x[j-i+1]%k)%k;
if(m[crnt][j]==0)
t++;
}
}
}
void afiseaza()
{
printf("%d",t);
fclose(fout);
}
int main()
{
citire();
rezolva();
afiseaza();
return 0;
}