Cod sursa(job #31096)
Utilizator | Data | 15 martie 2007 15:08:29 | |
---|---|---|---|
Problema | Divk | Scor | 40 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.47 kb |
#include <stdio.h>
long N,K,A,B,nr;
long v[500001];
int main ()
{
long i,x,j;
freopen ("divk.in","r",stdin);
freopen ("divk.out","w",stdout);
scanf ("%ld %ld %ld %ld",&N,&K,&A,&B);
for (i=1;i<=N;i++)
{
scanf ("%ld",&x);
v[i]=v[i-1]+x;
}
for (i=A;i<=B;i++)
if (v[i]%K==0) nr++;
for (i=2;i<=N-A+1;i++)
for (j=A;(j<=B)&&(i+j-1<=N);j++)
if ((v[i+j-1]-v[i-1])%K==0) nr++;
printf ("%ld",nr);
fclose (stdin);
fclose (stdout);
return 0;
}