Pagini recente » Diferente pentru utilizator/mihaipriboi intre reviziile 38 si 39 | Cod sursa (job #1011036) | Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #515945)
Cod sursa(job #515945)
const f='divk.in';g='divk.out';
var
n,k,a,b,i:longint;
rez:longint;
v,s,c:array[0..500001] of longint;
buf:array[1..1 shl 20] of char;
buf1:array[1..1 shl 15] of char;
begin
assign(input,f);reset(input);
assign(output,g);rewrite(output);
settextbuf(output,buf1);
settextbuf(input,buf);
readln(n,k,a,b);
for i:=1 to n do
begin
readln(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;
rez:=rez + c[s[i]];
end;
write(rez);
close(input);close(output);
end.