Var tc,d,i:longint; num1, denum1, a, p, q:extended; num, denum:int64; function z(x:extended):boolean; begin z:=(abs(x - round(x)) < 1e-9); end; begin read(tc); while tc>0 do begin dec(tc); read(a,p,q,d); num1:=p*a*(1 - a) + q * a; denum1 := (1 - a) * (1 - a); while (z(num1) = false )or(z(denum1) = false) do begin num1 := num1 * 10; denum1 := denum1 * 10; end; num := round(num1); denum := round(denum1); Write(num div denum,'.'); num:=(num mod denum)*10; for i:=1 to d do begin if num < denum then begin num:=num * 10; Write(0); continue; end; Write(num div denum); num := num mod denum; num := num * 10; end; Writeln; end; end. p*a(1 - a) + q*a/ (1-a) ^ 2 9035734072022160664819944598337950138504155