Cod sursa(job #37588)

Utilizator MariusGeantaMarius Geanta MariusGeanta Data 25 martie 2007 11:14:44
Problema Dezastru Scor 10
Compilator fpc Status done
Runda preONI 2007, Runda 4, Clasa a 9-a si gimnaziu Marime 1.11 kb
{ Dezastru/preONI 2007 runda 4 }
{ Generare permutari }
program sdf;
    var n,i,q,j:byte;
        m:longint;
        x:array[1..25] of real;
        p,uz:array[1..25]of integer;
        tot:real;
        f:text;
{ procedura pt determinare probabilitati }
procedure probabilitati;
      var i:integer;s:real;
begin
     s:=1;
     for i:=1 to q do s:=s*x[p[i]];
     tot:=tot+s/m;
end;
{ procedura pt generare permutari }
procedure GenPermutari(k:integer);
      var i:integer;
begin
     if k-1=n then probabilitati
              else
        for i:=1 to n do
            if uz[i]=0 then begin
               p[k]:=i;uz[i]:=1;
               GenPermutari(k+1);
               uz[i]:=0;
                           end;
end;

begin
     { citire date de intrare }
     assign(f,'dezastru.in');reset(f);
     readln(f,n,q);
     for j:=1 to n do read(f,x[j]);
     close(f);
     { n! }
     m:=1;
     for i:=2 to n do m:=m*i;
     { Determinare nr cerut }
     tot:=0;
     GenPermutari(1);
     { afisare }
     assign(f,'dezastru.out');rewrite(f);
     write(f,tot:7:6);
     close(f);
end.