Cod sursa(job #624708)

Utilizator chimistuFMI Stirb Andrei chimistu Data 22 octombrie 2011 17:46:20
Problema Dezastru Scor 10
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.39 kb
{a[n] -> vector cu coeficienti probabilitate
q -> nr permutari}
var n,m,q,i:integer;
a:array[1..100] of real;
v:array[1..100] of integer;
nr:real;
function numarator:real;
var j:integer;
begin
        numarator:=1;
        for j:=1 to m do
                numarator:=numarator*a[v[j]];
end;


function ok(x,k:integer):boolean;
var j:integer;
begin
        ok:=true;
        for j:=1 to k-1 do
                if v[j]=x then
                        ok:=false;
end;

procedure bckt;
var p,k:integer;
begin
        k:=1;v[k]:=0;
        while k>0 do begin
                p:=0;
                while (v[k]<n) and (p=0) do  begin
                        inc(v[k]);
                        if ok(v[k],k) then
                                p:=1;end;
                if p=1 then
                        if k=n then begin
                                q:=q+1;
                                nr:=nr+numarator;
                                end
                        else begin
                                k:=k+1;
                                v[k]:=0;end
                else
                        k:=k-1;  end;
end;


begin
        assign (input,'dezastru.in');assign (output,'dezastru.out');
        reset(input);rewrite(output);
        read (n,m);
        for i:=1 to n do
                read (a[i]); q:=0;nr:=0;
        bckt;
        write (nr/q:0:6);
end.