Cod sursa(job #185362)
Utilizator | Voroneanu Radu Stefan radu_voroneanu | Data | 25 aprilie 2008 10:29:51 |
---|---|---|---|
Problema | Divk | Scor | 100 |
Compilator | fpc | Status | done |
Runda | Arhiva de probleme | Marime | 0.5 kb |
var v:array[0..100000] of longint;
s:array[0..500000] of longint;
x,a,b,k,i,n,j:longint;
nr:int64;
f,g:text;
begin
assign(f,'divk.in'); reset(f);
assign(g,'divk.out'); rewrite(g);
read(f,n,k,a,b);
v[0]:=1;
for i:=1 to a-1 do begin
read(f,x);
s[i]:=(s[i-1]+x) mod k;
end;
nr:=0;
for i:=a to n do begin
read(f,x);
s[i]:=(s[i-1]+x) mod k;
nr:=nr+v[s[i]];
inc(v[s[i-a+1]]);
if i>=b then
dec(v[s[i-b]]);
end;
writeln(g,nr);
close(f); close(g);
end.