Pagini recente » Cod sursa (job #231596) | Cod sursa (job #63716) | Cod sursa (job #3217907) | Cod sursa (job #2620285) | Cod sursa (job #1632176)
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;
inc(atacuri);
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;
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:=0;
back(1);
writeln(atacuri);
write(output,(o/atacuri):7:6);
close(input);
close(output);
End.