Pagini recente » Cod sursa (job #1442331) | Cod sursa (job #2742493) | Clasament dupa rating | Monitorul de evaluare | Cod sursa (job #603640)
Cod sursa(job #603640)
Program divk;
var n,k,a,b,i:longint;
r:int64;
v,s,c:array[0..500005] of longint;
b1,b2:array[1..1 shl 17] of char;
fi,fo:text;
begin
assign(fi,'divk.in');
reset(fi);
assign(fo,'divk.out');
rewrite(fo);
settextbuf(fi,b1);
settextbuf(fo,b2);
readln(fi,n,k,a,b);
for i:=1 to n do begin
readln(fi,v[i]);
s[i]:=(s[i-1]+v[i]) mod k;
end;
for i:=a to n do begin
inc(c[s[i-a]]);
if i>b then c[s[i-b-1]]:=c[s[i-b-1]]-1;
r:=r + c[s[i]];
end;
write(fo,r);
close(fo);
end.