Pagini recente » Cod sursa (job #2638130) | Cod sursa (job #2388613) | Cod sursa (job #1012375) | Cod sursa (job #345959) | Cod sursa (job #799084)
Cod sursa(job #799084)
using namespace std;
#include<vector>
#include<fstream>
#define nmax 500001
vector<int>v(nmax),aib(nmax);
int n;
int zeros(int x)
{
return x&(-x);
}
void update(int x,int i)
{
while(i<=n)
{
aib[i]+=x;
i+=zeros(i);
}
}
int suma(int a)
{
long long s=0;
while(a)
{
s+=aib[a];
a-=zeros(a);
}
return s;
}
int main ()
{
int x,i,a,b,k,nr=0;
ifstream f("divk.in");
ofstream g("divk.out");
f>>n>>k>>a>>b;
for(i=1;i<=n;i++)
{
f>>x;
update(x,i);
}
for(i=1;i<=n-a+1;i++)
{
x=a-1;
while(x+i-1<n&&x-i+1<b)
{
if((suma(x+i)-suma(i-1))%k==0)
++nr;
x++;
}
}
g<<nr;
f.close();
g.close();
return 0;
}