Cod sursa(job #50053)
Utilizator | Data | 6 aprilie 2007 19:33:38 | |
---|---|---|---|
Problema | Divk | Scor | 50 |
Compilator | fpc | Status | done |
Runda | Arhiva de probleme | Marime | 0.4 kb |
var t,s,v:array[0..100000] of int64;
f,g:text;
n,k,a,b,i,tot:longint;
begin
assign(f,'divk.in'); reset(f);
assign(g,'divk.out'); rewrite(g);
read(f,n,k,a,b);
tot:=0;
for i:=1 to n do begin
read(f,t[i]);
s[i]:=(s[i-1]+t[i]) mod k;
if (i>=b+1) then
dec(v[s[i-b-1]]);
if (i>=a) then
inc(v[s[i-a]]);
tot:=tot+v[s[i]];
end;
writeln(g,tot);
close(f); close(g);
end.