Cod sursa(job #640439)

Utilizator ctlin04UAIC.VlasCatalin ctlin04 Data 25 noiembrie 2011 19:11:21
Problema Dezastru Scor 20
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.83 kb
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.