Cod sursa(job #515943)

Utilizator vendettaSalajan Razvan vendetta Data 22 decembrie 2010 19:00:18
Problema Divk Scor 30
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.72 kb
const f='divk.in';g='divk.out';
var
    a,b,n,k,i,j,ff,ii,rez:longint;
    v,m,p,s: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);
    ii:=1;
    s[0]:=0;
    for i:=1 to n do
        begin
        readln(m[i]);
        s[i]:=s[i-1]+m[i];
        v[i]:=s[i] mod k;
        end;
    p[0]:=1;
    for i:=a to n do
        begin
        rez:=rez+p[v[i]];
        p[v[i-a+1]]:=p[v[i-a+1]]+1;
        if i>=b then p[v[i-b]]:=p[v[i-b]]-1;
        end;
    write(rez);
    close(input);close(output);
end.