牛牛的鱼缸 题解
牛牛的鱼缸
https://ac.nowcoder.com/acm/contest/5531/B
其实就是求这个底面积。
我分了三种情况。
一种是正好水平过去在那个角上,也就是说h*L==H*l,答案很显然就是三角形面积
第二种就是往下偏移构成三角形,只需要求出边长即可 面积为(L*h*h)/2*H
第三种就是梯形,求出上底来之后面积即为所求 h*l-(H*l*l)/(2.0*L)
import java.util.*; import java.math.*; import java.io.IOException; import java.io.InputStreamReader; import java.io.StreamTokenizer; import java.io.OutputStreamWriter; import java.io.BufferedReader; import java.io.PrintWriter; public class Main { public static void main(String args[])throws IOException { StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in))); PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out)); in.nextToken(); long h = (long) in.nval; in.nextToken(); long l = (long) in.nval; in.nextToken(); long H = (long) in.nval; in.nextToken(); long L = (long) in.nval; in.nextToken(); if(h*L==H*l) out.print(String.format("%.8f",(l*h)/(2.0))); else if(h*L<H*l) out.print(String.format("%.8f",(L*h*h)/(2.0*H))); else if(h*L>H*l) out.print(String.format("%.8f",h*l-(H*l*l)/(2.0*L))); out.flush(); } }