Cod sursa(job #51095)

Utilizator cezar305Mr. Noname cezar305 Data 9 aprilie 2007 21:56:56
Problema Oite Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.09 kb
var f1,f2:text; n,i,j,h,s,nr,l,k,max:longint; v:array[1..3,0..20001] of integer; a:array[1..100] of longint; x:array[1..100000] of longint;
begin
        assign(f1,'oite.in');
        reset(f1);
        assign(f2,'oite.out');
        rewrite(f2);
        read(f1,n,l);
        max:=1;h:=1;
        for i:=1 to n do read(f1,a[i]);
        x[1]:=a[1];
        v[1,x[1]]:=1;
        for i:=2 to n do begin
                v[1,a[i]]:=1;
                max:=h;
                for j:=1 to max do begin
                        for k:=1 to 2 do
                                if (v[k,x[j]]=1)and(x[j]+a[i]<=l) then
                                begin
                                        v[k+1,x[j]+a[i]]:=1;
                                        inc(h);
                                        x[h]:=x[j]+a[i];
                                        if a[i]=0 then break;
                                end;
                        if (v[3,x[j]]=1)and(x[j]+a[i]=l) then inc(nr);
                end;
        end;
        writeln(f2,nr);
        close(f1);
        close(f2);
end.