Cod sursa(job #615332)
| Utilizator | Data | 9 octombrie 2011 14:07:38 | |
|---|---|---|---|
| Problema | Divk | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.48 kb |
#include<stdio.h>
long long sume[500010],sol,nr;
int A,B,K,n;
int main()
{
freopen("divk.in","r",stdin);
freopen("divk.out","w",stdout);
scanf("%d %d %d %d",&n,&K,&A,&B);
for(int i=1;i<=n;i++)
{
scanf("%lld",&nr);
sume[i]=sume[i-1]+nr;
if(i-B>=0)
{
for(int j=i-B;j<=i-A;j++)
{
if((sume[i]-sume[j])%K==0) sol++;
}
}
else
{
for(int j=1;j<=i-A;j++)
if((sume[i]-sume[j])%K==0) sol++;
}
}
printf("%lld",sol);
}