Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdio>
- #include <cmath>
- #include <cstdlib>
- int main() {
- freopen("in.txt", "r", stdin);
- int T,cs=1;
- scanf("%d", &T);
- for (cs = 1; cs<=T; cs++) {
- double rat, ab, bc, ac,de,ae,ad, ratio, s, area,s2,area2,area3;
- scanf("%lf %lf %lf %lf", &ab, &ac, &bc, &ratio);
- s = (ab+bc+ac)/2;
- area = sqrt(s*(s-ab)*(s-bc)*(s-ac));
- double low = 10e-7;
- double high = ab;
- int xyz = 100;
- while (xyz--) {
- ad = low + (high-low)/2;
- //printf("%lf %lf %lf\n", low, high,ad);
- de = (ad/ab) * bc;
- ae = (ad/ab) * ac;
- s2 = (ad * (((bc/ab) + (ac/ab) + 1) / 2));
- area2 = sqrt(s2*(s2-ad)*(s2-de)*(s2-ae));
- area3 = area -area2;
- if ((area3*ratio - area2) <= 10e-6) break;
- else if (area3*ratio < area2) {
- high = ad-10e-5;
- }
- else {
- low = ad + 10e-5;
- }
- }
- printf("%lf\n", ad);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment