Pagini recente » Cod sursa (job #1691744) | Cod sursa (job #613324) | Cod sursa (job #261539) | Cod sursa (job #1686447) | Cod sursa (job #577515)
Cod sursa(job #577515)
#include<iostream>
#include <fstream>
using namespace std;
int n, vec[500001],sum[500001],k,a,b;
long long t;
void citire()
{
ifstream fin("divk.in");
fin>>n>>k>>a>>b;
for (int i=1;i<=n;i++)
fin>>vec[i];
}
int main ()
{
citire();
ofstream fout("divk.out");
for(int i=1;i<=n;i++)
if(i<=b) sum[i]=sum[i-1]+vec[i];
else
sum[i]=sum[i-1]+vec[i]-vec[i-b];
for(int i=b;i>=a;i--)
{
int r=i;
while (r>=a)
{
if((sum[i]-sum[i-r])%k==0) t++;
r--;
}
}
for(int i=b+1;i<=n;i++)
{
if(sum[i]%k==0) t++;
int r=b-1,s=0;
while (r>=a)
{
s+=vec[i-r];
if((sum[i]-s)%k==0) t++;
r--;
}
}
fout<<t;
return 0;
}