Pagini recente » Cod sursa (job #1638495) | Cod sursa (job #499564) | Cod sursa (job #495972) | Cod sursa (job #395397) | Cod sursa (job #183935)
Cod sursa(job #183935)
{$n+}
program combinari;
type vec=array[0..25] of integer;
vecc=array[0..25] of extended;
var a:vec;
b:vecc;
s:extended;
z:extended;
n,p,i:integer;
f,g:text;
function valid(k:integer):boolean;
var t:boolean;
i:integer;
begin
t:=true;
{for i:=1 to k-1 do
if a[i]=a[k] then t:=false;
valid:=t;}
end;
function final(k:integer):boolean;
begin
if p=k then final:=true
else final:=false;
end;
procedure tipar(k:integer);
var i:integer;x:extended;
begin
x:=b[a[1]];
for i:=2 to k do
x:=x*b[a[i]];
x:=x/s;
z:=z+x*2;
end;
procedure back(k:integer);
var i:integer;
begin
for i:=a[k-1]+1 to n do begin
a[k]:=i;
if valid(k) then if final(k) then tipar(k)
else back(k+1);
end;
end;
begin
assign(f,'dezastru.in');assign(g,'dezastru.out');reset(f);rewrite(g);
readln(f,n,p);a[0]:=0;
for i:=1 to n do
read(f,b[i]);s:=1;
for i:=n-p+1 to n do
s:=s*i;
for i:=1 to p do
s:=s/i;
s:=s*2;
back(1);
write(g,z:0:6);
close(f);close(g);
end.