Pagini recente » Cod sursa (job #138434) | Cod sursa (job #889939) | Cod sursa (job #2615929) | Cod sursa (job #291887) | Cod sursa (job #545664)
Cod sursa(job #545664)
var m,v,l:array[0..500000]of longint;
a,b,n,k,i,j,poz:longint;
nr,s:int64;
f1,f2:text;
begin
assign(f1,'divk.in');
assign(f2,'divk.out');
reset(f1);
rewrite(f2);
readln(f1,n,k,a,b);
for i:=1 to n do
readln(f1,m[i]);
{ for i:=1 to n do
for j:=i-(i xor (i and (i-1))+1 to i do
v[i]:=v[i]+a[j]; }
{ s:=0;
for i:=1 to a do
s:=s+m[i];
poz:=a;
for i:=1 to b-a+1 do
begin
v[i]:=s;
inc(poz);
s:=s+m[poz];
end;
nr:=0;
for i:=a to n do
begin
for j:=1 to b-a+1 do
if v[j] mod k=0 then inc(nr);
for j:=1 to b-a+1 do
v[j]:=
end; }
for i:=b to n do
for j:=i-b+1 to i do
v[i]:=v[i]+m[j];
nr:=0;
for i:=b to n do
for j:=i-b+1 to i-b+a+1 do
begin
if v[i] mod k=0 then inc(nr);
v[i]:=v[i]-m[j];
end;
l[1]:=m[1];
for i:=2 to b-1 do
l[i]:=l[i-1]+m[i];
{ for i:=a+1 to b-1 do
begin
if s mod k=0 then inc(nr);
s:=s+m[i];
end; }
for i:=a to b do
begin
for j:=i to b-1 do
if l[j] mod k=0 then inc(nr);
for j:=1 to a do
l[j+b-a]:=l[j+b-a]-m[j]
end;
writeln(f2,nr);
close(f2);
end.