Pagini recente » Cod sursa (job #140368) | Cod sursa (job #64066) | Cod sursa (job #2392818) | Cod sursa (job #2288224) | Cod sursa (job #167423)
Cod sursa(job #167423)
var f,g:text;
i,n,k,p:byte;
x:array[1..25] of byte;
a:array[1..25] of real;
ok:boolean;
s,ss,nr:real;
procedure citire;
begin
assign(f,'dezastru.in');
reset(f);
readln(f,n,p);
for i:=1 to n do read(f,a[i]);
end;
function posibil(k:byte):boolean;
begin
posibil:=true;
if x[k]>n-p+k then begin posibil:=false; exit; end;
for i:=1 to k-1 do if x[i]>=x[k] then begin
posibil:=false;
exit;
end;
end;
procedure sol;
begin
s:=1;
for i:=1 to p do s:=s*a[x[i]];
nr:=nr+1;
ss:=ss+s;
end;
procedure back;
begin
k:=1;
while k>0 do begin
ok:=false;
while not ok and (x[k]<n) do begin
x[k]:=x[k]+1;
ok:=posibil(k);
end;
if ok then if k=p then sol
else begin k:=k+1; x[k]:=k-1; end
else k:=k-1;
end;
end;
procedure afisare;
begin
assign(g,'dezastru.out');
rewrite(g);
writeln(g,ss/nr:10:6);
close(g);
end;
begin
citire;
back;
afisare;
end.