Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- double a, b, c, A, B, C;
- double Ratio = 0;
- double binarySearch(double low, double high) {
- double result = 0;
- int count = 70;
- double mid;
- while (count--) {
- mid = (low + high) / 2.00;
- a = mid;
- b = (a / A) * B;
- c = (a / A) * C;
- double ADE = ((a + b + c) / 2.0);
- double ABC = ((A + B + C) / 2.0);
- double areaOne = sqrt(ADE * (ADE - a) * (ADE - b) * (ADE - c));
- double areaTwo = sqrt(ABC * (ABC - A) * (ABC - B) * (ABC - C));
- double BDEC = areaTwo - areaOne;
- result = areaOne / BDEC;
- if (result > Ratio) {
- high = mid;
- } else {
- low = mid;
- }
- }
- return mid;
- }
- int main() {
- int testCase;
- cin >> testCase;
- for (int i = 0; i < testCase; i++) {
- cin >> A >> B >> C >> Ratio;
- printf("Case %d: %.10lf\n", i + 1, binarySearch(0, A));
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement