Cod sursa(job #37891)

Utilizator vanila0406Ionescu Victor vanila0406 Data 25 martie 2007 13:00:44
Problema Dezastru Scor 30
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.4 kb
program dezastru;
var f,g:text;
        n,k:longint;
        b:array[1..26] of byte;
        v:array[1..26] of real;
        s:real;




procedure iofile;
var i:longint;
begin
        assign(f,'dezastru.in');
        reset(f);
        assign(g,'dezastru.out');
        rewrite(g);
        readln(f,n,k);
        for i:=1 to n do
                read(f,v[i]);
        close(f);
        fillchar(b,sizeof(b),0);
        s:=0;
end;







procedure prel(nk:longint;nr:byte;p:real);
begin
        if nk=n+1 then
                begin
                        if nr=0 then s:=s+p;
                end
                else
                begin
                     if nr>0 then
                        begin
                                b[nk]:=1;
                                prel(nk+1,nr-1,p*v[nk]);
                                b[nk]:=0;
                        end;
                     prel(nk+1,nr,p);
                end;
end;





procedure org;
var i:longint;
        p1,p2,perm,a:qword;
begin
        iofile;
        prel(1,k,1);
        perm:=1;
        for i:=1 to k do
                perm:=perm*i;
        p1:=1;
        p2:=1;
        for i:=1 to n-k do
                p2:=p2*i;
        for i:=1 to n do
                p1:=p1*i;
        a:=p1 div p2;
        writeln(g,(s*perm)/a:0:6);
        close(g);
end;


begin
        org;
end.