Cod sursa(job #39367)

Utilizator raduzerRadu Zernoveanu raduzer Data 26 martie 2007 17:49:51
Problema Dezastru Scor 70
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.81 kb
var a:array[0..25]of real;
    d:array[0..25]of integer;
    b:array[1..4194304]of real;
    n,k,i,z:longint;
    r,x:real;

procedure back(i:integer);
var j:integer;
begin
     if i>k then
     begin
          inc(z);
          b[z]:=x;
          exit;
     end;

     for j:=d[i-1] to n do
     begin
          if k-i>n-j+1 then break;
          d[i]:=j+1;
          x:=x*a[j];
          back(i+1);
          x:=x/a[j];
          d[i]:=0;
     end;
end;

begin
     assign(input,'dezastru.in');
     reset(input);
     assign(output,'dezastru.out');
     rewrite(output);
     readln(n,k);
     for i:=1 to n do read(a[i]);
     d[0]:=1;
     z:=0;
     x:=1;
     back(1);
     for i:=1 to z do
     begin
          r:=r+b[i];
     end;
     writeln(r/z:0:6);
close(output);
end.