Cod sursa(job #203734)

Utilizator 7RaduRadu Antohi 7Radu Data 19 august 2008 08:31:19
Problema Dezastru Scor 50
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.23 kb
program Perm;
var
  fl : text;
   s : array[1..25] of longint;
   p : array[1..25] of real;
   n, k, l, m, p_num, i : longint;
   p_tot, p_pr : real;

procedure back(k:longint);
var
  i, j : longint;
  y : boolean;
begin
   if k = l then
      begin
         for i := 1 to k do
             p_pr := p_pr * p[s[i]];
         p_num := p_num + 1;
         p_tot := p_tot + p_pr;
         p_pr := 1;
      end
   else
       begin
          for i := 1 to n do
             begin
                y := true;
                for j := 1 to k do
                   if s[j] = i then
                       begin
                          y := false;
                          break;
                       end;
                if y then
                   begin
                      s[k+1] := i;
                      back(k+1);
                   end;
             end;
       end;
end;
begin
   assign(fl,'dezastru.in');
   reset(fl);
   readln(fl,n,l);
   for i := 1 to n do
      read(fl,p[i]);
   p_tot := 0;
   p_num := 0;
   p_pr := 1;
   close(fl);
   back(0);

   p_tot := p_tot / p_num;

   assign(fl,'dezastru.out');
   rewrite(fl);
   writeln(fl,p_tot:0:6);
   close(fl);

   readln;
end.