Cod sursa(job #1610442)
| Utilizator | Data | 23 februarie 2016 15:45:38 | |
|---|---|---|---|
| Problema | Divk | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.45 kb |
#include <vector>
#include <cstdio>
using namespace std;
int n,A,B,x,k,i,nr[100002],s[500002];
long long ans=0LL;
int main()
{
freopen("divk.in","r",stdin);
freopen("divk.out","w",stdout);
scanf("%d%d%d%d",&n,&k,&A,&B);
for(i=1;i<=n;++i)
{
scanf("%d",&x);
s[i]=s[i-1]+x;s[i]%=k;
if(i>=A) ++nr[s[i-A]];
if(i>B) --nr[s[i-B-1]];
ans+=1LL*nr[s[i]];
}
printf("%lld\n",ans);
return 0;
}
