B ボウリングゲーム
トピックへのリンク:https://ac.nowcoder.com/acm/contest/912/B
タイトル
試合後CUSTの選手たちはボーリングに行く小さなRで、地域を終えました。
ボウリング、ゲームの難易度が非常に高いですが、これは学校のチームメンバーを生きることだけでは困難であり、それらはすべて(非常に強力で
揚げと
反転している10瓶の外に)。特に小さなR、目は一度10本のボトルを投げるためにあらゆる時間を閉じました。その中でもそんなにないボールが中にあるボトルをヒットしない原因下水道選手、ボールが下水道に投げたびに、そこにあります。
ラウンドはダウン、我々は戻ってボール少なく見つけ、そして最終的にいくつかの数字9ボールを残しました。彼らはあまりにも軽いので、9ボールを失うことは好きではありません。
あなたは妹のために働くした後、そのバックグラウンドを手動でボールを取得するために操作されるようにしましょう松江ボーリングクラブの技術は、ボールが、少数のボールは、ボールが立ち往生している原因となり、すぐに戻って来なかった、下水道内に落下するので、進んでいませんそれが今、このような状況につながる可能性があります。
学校のチームのメンバーは、いくつか知っている、彼らは少なくとも一人あたりです揚げや、一度だけ1下水道の選手。。。
青いエリアに示されている、ボウリングを私たちはこの時間について、背景は正方形のボックスであることを学んだ立ち往生されるS 1
エントリー
S1、S2、2つの正の整数、によって入力コモンラインS 1及びS 2は確保する描画領域であるSを1 、S 2 ≤ 10 。9及びグラフィカル法)
出力
输出一行,即保龄球的直径 D。
你的答案与标准答案误差在±0.001范围以内都算正确。
样例
input
6 25
693 2853
output
2
21.586519
思路
将s1分为三个小三角形,两个直角边的边长之和就是sqrt(4*s1+s2),斜边边长就是sqrt(s2),列一元二次方程即可
#include<bits/stdc++.h> using namespace std; int main() { int s1,s2; while(cin>>s1>>s2) { double len=sqrt(s2+4*s1); double _1=(len+sqrt(len*len-8*s1))/2; double _2=(len-sqrt(len*len-8*s1))/2; double xie=sqrt(s2); double sum=xie+_1+_2; cout<<fixed<<setprecision(6)<<(4*s1)/sum<<endl; } return 0; }