solution
分为两种情况,第一种情况就是
用整个鱼缸的体积减去绿色部分即可,绿色部分中标出的角与下面大三角形中标出的角一样大,所以可以利用红色变就可以求出绿色三角形的另一条直角边,进而求出绿色三角形的体积。
另一种情况就是
图中红色角是相等的,和上面一样可以求出绿色三角形的体积,就是答案。
(把l写成了L喜得3发罚时。。。)
code
/* * @Author: wxyww * @Date: 2020-05-08 19:05:17 * @Last Modified time: 2020-05-08 19:42:26 */ #include<cstdio> #include<iostream> #include<cstdlib> #include<cmath> #include<ctime> #include<bitset> #include<cstring> #include<algorithm> #include<string> #include<queue> #include<vector> using namespace std; typedef long long ll; ll read() { ll x=0,f=1;char c=getchar(); while(c<'0'||c>'9') { if(c=='-') f=-1; c=getchar(); } while(c>='0'&&c<='9') { x=x*10+c-'0'; c=getchar(); } return x*f; } int main() { double h = read(),l = read(),H = read(),L = read(); if(h * L > l * H) { double ans = l * h; h = l * H / L; printf("%.9lf\n",ans - l * h / 2.0); } else { l = h * L / H; printf("%.9lf\n",l * h / 2.0); } return 0; }