Pagini recente » Borderou de evaluare (job #1567281) | Cod sursa (job #2297003) | Cod sursa (job #1324698) | Cod sursa (job #2354842) | Cod sursa (job #591744)
Cod sursa(job #591744)
#include <fstream>
#include <cstdio>
using namespace std;
int v[524288],w[524288];
long long S;
int main ()
{
ifstream in ("divk.in");
freopen ("divk.out","w",stdout);
int n,k,a,b,x;
in>>n>>k>>a>>b;
++b;
for(int i=1;i<=n;++i){
in>>x;
v[i]=(x+v[i-1])%k;
}
for(int i=a;i<=n;++i){
++w[v[i-a]];
if(i>=b)
--w[v[i-b]];
S+=w[v[i]];
}
printf("%lld",S);
return 0;
}