Pagini recente » Cod sursa (job #1648695) | Cod sursa (job #375657) | Cod sursa (job #1501274) | Cod sursa (job #2990678) | Cod sursa (job #2096187)
Program Dezastru;
type nlim = integer;
vect = array[nlim] of nlim;
tab = array[nlim] of real;
var n,i,p:nlim;
l:integer;
v:vect;
f,g:text;
pri,prc:tab;
function sol(k:nlim):boolean;
begin
if k = p then sol:=true
else sol:=false;
end;
procedure Calc(k:nlim);
var i:nlim;
begin
l:=l+1;
prc[l]:=1;
for i:=1 to k do
//write(v[i],' ');
prc[l]:=prc[l]*pri[v[i]];
//writeln;
end;
procedure backtrack(k:nlim);
var i:nlim;
begin
for i:=v[k-1]+1 to n do begin
v[k]:=i;
if sol(k) then
calc(k)
else backtrack(k+1);
end;
end;
function rez(l:integer):real;
var s:real;
begin
s:=0;
for i:=1 to l do
s:= s + prc[i];
rez:=s/l;
end;
begin
l:=0;
assign(f,'dezastru.in');
assign(g,'dezastru.out');
reset(f);
rewrite(g);
readln(f,n,p);
for i:=1 to n do
read(f,pri[i]);
backtrack(1);
writeln(g,rez(l):0:6);
close(f);
close(g);
end.