Pagini recente » Cod sursa (job #3181990) | Cod sursa (job #2627902) | Cod sursa (job #536214) | Cod sursa (job #2306955) | Cod sursa (job #31035)
Cod sursa(job #31035)
#include<fstream.h>
long int n,k,a,b,s[500100],nr=0;
void citire()
{
int i;
ifstream f("divk.in");
f>>n>>k>>a>>b;
for(i=1;i<=n;i++)
f>>s[i];
f.close();
}
void prelucrare()
{
int i=1,j=a,mod=0,sum=0,z,t=1;
for(z=1;z<=a;z++)
sum+=s[z];
while(t)
{
if(mod==0)
{
while(j-i<b && j<=n)
{
if(sum%k==0) nr++;
sum+=s[++j];
}
sum-=s[i++];
mod=1;
}
else
{
while(j-i>=a-1)
{
if(sum%k==0) nr++;
sum-=s[j--];
}
sum+=s[++j];
sum-=s[i++];
sum+=s[++j];
mod=0;
}
if(i>n-a+1)
t=0;
}
}
int main()
{
citire();
prelucrare();
ofstream g("divk.out");
g<<nr<<"\n";
g.close();
return 0;
}