Pagini recente » Cod sursa (job #2177160) | Cod sursa (job #2567417) | Cod sursa (job #2762507) | Cod sursa (job #2841901) | Cod sursa (job #1632144)
var q:array[1..30] of integer;
i,n,k,atacuri:integer;
v:array[1..30] of real;
o:real;
function valid(m:integer):boolean;
var i:integer;
begin
valid:=true;
for i:=1 to m-1
do if q[i]=q[m] then valid:=not(valid);
end;
function solutie(m:integer):boolean;
begin
solutie:=true;
if m<>k then solutie:=not(solutie);
end;
procedure raspuns(m:integer);
var i,j:integer;
loc:real;
begin
loc:=1;
for i:=1 to k do
begin
loc:=loc*v[q[i]];
end;
o:=o+loc;
end;
procedure back(m:integer);
var i,j:integer;
begin
for i:=1 to n do
begin
q[m]:=i;
if valid(m) then
begin
if solutie(m) then raspuns(m);
back(m+1);
end;
end;
end;
function fact(n:integer):integer;
begin
if n=1 then fact:=1
else fact:=n*fact(n-1);
end;
Begin
assign(input,'dezastru.in'); reset(input);
assign(output,'dezastru.out'); rewrite(output);
readln(input,n,k);
for i:=1 to n do
read(v[i]);
o:=0;
Atacuri:=fact(n);
back(1);
write(output,o/atacuri:7:6);
close(input);
close(output);
End.