Hình học "is not difficult" 2

Xem PDF

Điểm: 500 Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho điểm \(C\) có tọa độ \((x,y)\) trên mặt phẳng \(Oxy\).

Một đường thẳng bất kì đi qua \(C\) cắt trục \(Ox,Oy\) lần lượt tại \(A\)\(B\) sao cho \(C\) nằm giữa \(A,B\)

Tìm giá trị nhỏ nhất của \(P=p * |CA|+q*|CB|\).

(Trong đó: \(|CA|,|CB|\) lần lượt là độ dài các đoạn \(CA,CB\)\(p,q\) là các số nguyên dương cho trước )

Input

  • Một thứ nhất chứa số nguyên \(T(1\le T\le 500)\) - Thể hiện số testcase

  • \(T\) dòng tiếp theo, mỗi dòng chứa \(4\) số nguyên \(x,y,p,q(0<x,y,p,q\le 10000)\).

Output

  • Ứng với mỗi testcase, in ra đáp án cần tìm. (Sai số không quá \(10^{-6}\))

Scoring

  • Subtask \(1\) (\(40\%\) số điểm): x = y

  • Subtask \(2\) (\(60\%\) số điểm): còn lại

Example

Test 1

Input
1
1 1 1 1
Output
2.828427125
Note

Ta nhận thấy rằng, đường thẳng \(y=2-x\) đi qua điểm \(C(1,1)\) sẽ cho \(P=p * |CA|+q*|CB|\) đạt giá trị nhỏ nhất là \(2.828427125\)


Bình luận

Không có bình luận nào.