Cod sursa(job #515942)

Utilizator vendettaSalajan Razvan vendetta Data 22 decembrie 2010 18:58:24
Problema Divk Scor 30
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.71 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
        read(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]];
        inc(p[v[i-a+1]]);
        if i>=b then p[v[i-b]]:=p[v[i-b]]-1;
        end;
    write(rez);
    close(input);close(output);
end.