Pagini recente » Cod sursa (job #777333) | Cod sursa (job #1558385) | Cod sursa (job #209123) | Borderou de evaluare (job #1058825) | Cod sursa (job #495450)
Cod sursa(job #495450)
# include <fstream>
# include <iostream>
# define DIM 500003
using namespace std;
int n, a, b, k, v[DIM], s[DIM];
long long sol, nk[DIM];
void read ()
{
long long x;
ifstream fin ("divk.in");
fin>>n>>k>>a>>b;
for(int i=1;i<=n;++i)
{
fin>>x;
v[i]=x%k;
}
}
void solve ()
{
for(int i=1;i<=a;++i)
s[i]=(s[i-1]+v[i])%k;
if (s[a]==0)++sol;
nk[0]=1;
for(int i=a+1;i<=b;++i)
{
s[i]=(s[i-1]+v[i])%k;
++nk[s[i-a]];
sol+=nk[s[i]];
}
for(int i=b+1;i<=n;++i)
{
s[i]=(s[i-1]+v[i])%k;
++nk[s[i-a]];
--nk[s[i-b-1]];
sol+=nk[s[i]];
}
}
int main ()
{
read ();
solve ();
ofstream fout ("divk.out");
fout<<sol;
return 0;
}