Mai intai trebuie sa te autentifici.
Cod sursa(job #39067)
Utilizator | Data | 26 martie 2007 13:19:32 | |
---|---|---|---|
Problema | Dezastru | Scor | 60 |
Compilator | fpc | Status | done |
Runda | Arhiva de probleme | Marime | 1.09 kb |
const maxn = 25;
var f:text;
n,k,i,j:longint;
sol,r:real;
a:array[1..maxn]of real;
st:array[0..maxn]of longint;
fol:array[1..maxn]of boolean;
procedure readdata;
begin
assign(f,'dezastru.in');
reset(f);
readln(f,n,k);
for i:=1 to n do
begin
read(f,a[i]);
end;
close(f);
end;
procedure back(m:integer);
var i:integer;
begin
if m>k then
begin
r:=1;
for i:=1 to k do
begin
r:=r*a[st[i]];
end;
sol:=sol+r;
end
else
begin
for i:=st[m-1]+1 to n do
begin
if fol[i]=false then
begin
st[m]:=i;
fol[i]:=true;
back(m+1);
fol[i]:=false;
end;
end;
end;
end;
procedure solve;
begin
st[0]:=0;
sol:=0;
back(1);
end;
procedure writedata;
begin
assign(f,'dezastru.out');
rewrite(f);
r:=1;
for i:=k+1 to n do
begin
r:=r*i/(i-k);
end;
writeln(f,sol/r:0:6);
close(f);
end;
begin
readdata;
solve;
writedata;
end.