Pagini recente » Cod sursa (job #1087750) | Cod sursa (job #463113) | Cod sursa (job #2319073) | Cod sursa (job #1071579) | Cod sursa (job #1141842)
#include<fstream>
#define N 500100
#define K 100100
using namespace std;
ifstream f("divk.in");
ofstream g("divk.out");
int nr[K],v[N],i,x,n,mo[N],k,a,b,j;
long long sol;
int main ()
{
f>>n>>k>>a>>b;
for(i=1;i<=n;++i)
{
f>>x;
mo[i]=(mo[i-1]+x)%k;
}
j=0;
nr[0]=1;
for(i=1;i<=n;++i)
{
if(i-j>b)
{
nr[mo[j]]--;
j++;
}
sol+=nr[mo[i]];
nr[mo[i]]++;
}
for(i=0;i<k;++i)
nr[i]=0;
nr[0]=1;
a--;
j=0;
for(i=1;i<=n;++i)
{
if(i-j>a)
{
nr[mo[j]]--;
j++;
}
sol-=nr[mo[i]];
nr[mo[i]]++;
}
g<<sol;
}