Pagini recente » Istoria paginii runda/ytu | Cod sursa (job #2362851) | Cod sursa (job #409979) | Cod sursa (job #3248364) | Cod sursa (job #640439)
Cod sursa(job #640439)
Program dezastru;
var a:array [0..27,0..27] of double;
b:array [0..27] of double;
nr:longint;
n,k,i,j:byte;
fi,fo:text;
function comb(n,k:byte):longint;
var s1,s2,s3:longint;
begin
{if (n=k) or (k=0) then comb:=1
else comb:=comb(n-1,k)+comb(n-1,k-1); }
s1:=1; s2:=1; s3:=1;
for i:=1 to n do begin
s1:=s1*i;
if i<=n-k then s2:=s2*i;
if i<=k then s3:=s3*i;
end;
comb:=trunc((s1)/(s2*s3));
end;
begin
assign(fi,'dezastru.in');
assign(fo,'dezastru.out');
reset(fi); rewrite(fo);
readln(fi,n,k);
for i:=1 to n do begin read(fi,b[i]); a[i,0]:=1; end;
a[0,0]:=1;
for i:=1 to k do
for j:=i to n do
a[j,i]:=a[j-1,i]+a[j-1,i-1]*b[j];
nr:=comb(n,k);
write(fo,a[n,k]/nr:0:6);
close(fo);
end.