Pagini recente » Cod sursa (job #682129) | Cod sursa (job #2183384) | Cod sursa (job #555864) | Cod sursa (job #145790) | Cod sursa (job #168995)
Cod sursa(job #168995)
program dezastru;
var A : array [1..25] of double;
B : array [1..25] of shortint;
n,m,i : shortint;
nr : longint;
S : real;
f,g : text;
procedure wri(p:shortint);
var i : shortint;
r : double;
begin
nr := nr+1;
r := 1;
for i := 1 to p do
r := r*A[B[i]];
S := S+r;
end;
function valid(p:shortint):boolean;
var ok : boolean;
i : shortint;
begin
ok := true;
for i := 1 to p-1 do
if B[i]=B[p] then begin
ok := false;
break;
end;
valid := ok;
end;
procedure back(p:integer);
var pval : shortint;
begin
for pval := 1 to n do begin
B[p] := pval;
if valid(p) then if p=m then wri(p)
else back(p+1);
end;
end;
begin
assign(f,'dezastru.in');
reset(f);
assign(g,'dezastru.out');
rewrite(g);
readln(f,n,m);
for i := 1 to n do
read(f,A[i]);
nr := 0;
back(1);
write(g,S/6:1:6);
close(f);
close(g);
end.