Pagini recente » Cod sursa (job #1814313) | Cod sursa (job #993388) | Cod sursa (job #864532) | Cod sursa (job #3160332) | Cod sursa (job #190542)
Cod sursa(job #190542)
var n,p,i,nr,m:integer;
s,rez:real;
sol:array[1..30]of integer;
v:array[1..30]of real;
procedure init(k:integer);
begin
sol[k]:=0;
end;
function succesor(k:integer):boolean;
begin
if (sol[k]<n) then begin
sol[k]:=sol[k]+1;
succesor:=true;
end
else succesor:=false;
end;
function valid(k:integer):boolean;
var i:integer;
begin
valid:=true;
for i:=1 to k-1 do
if (sol[i]=sol[k]) then valid:=false;
end;
function solutie(k:integer):boolean;
begin
solutie:=(k=m+1);
end;
procedure tipar;
var i:integer;
begin
s:=1;
for i:=1 to m do s:=s*v[sol[i]];
rez:=rez+s;
inc(nr);
end;
procedure back(k:integer);
begin
if solutie(k) then tipar
else begin
init(k);
while succesor(k) do
if valid(k) then back(k+1);
end;
end;
begin
assign(input,'dezastru.in'); reset(input);
assign(output,'dezastru.out'); rewrite(output);
readln(n,m);
for i:=1 to n do read(v[i]);
back(1);
writeln(rez/nr:0:6);
close(input); close(output);
end.