题目背景
请尽量在 20min 之内写完题目。这是指「写代码」的时间;「读题」时间不计算在内。
题目描述
给定平面直角坐标系上的三个整点 A, B, CA,B,C 的坐标,求其围成的三角形面积。
数据保证答案一定是整数。所以如果你采用了浮点数来计算,请四舍五入到整数。
两点之间的距离公式: (x_1, y_1), (x_2, y_2)(x1,y1),(x2,y2) 之间的距离是 \sqrt{(x_1 - x_2)^2 + (y_1 - y_2)^2}(x1−x2)2+(y1−y2)2
海伦公式: 若三角形的边长为 a, b, ca,b,c,则三角形的面积是 \sqrt{s(s-a)(s-b)(s-c)}s(s−a)(s−b)(s−c),其中 s=\frac12(a+b+c)s=21(a+b+c).
输入格式
共三行,每行表示一个三角形上的点。
每行包含两个正整数,表示点的坐标,形式为 x y
。
输出格式
共一行,一个整数,表示三角形面积。
输入输出样例
输入 #1复制
10 20 30 40 50 50
输出 #1复制
100
说明/提示
样例解释
可以通过海伦公式计算面积。方法如下。
ABAB 距离:\sqrt{(30 - 10)^2 + (40 -20)^2} \approx 28.284(30−10)2+(40−20)2≈28.284
BCBC 距离:\sqrt{(50-30)^2 + (50-40)^2} \approx 22.361(50−30)2+(50−40)2≈22.361
ACAC 距离:\sqrt{(50-10)^2+(50-20)^2}\approx 50(50−10)2+(50−20)2≈50
应用海伦公式,s \approx (28.284 + 22.361 + 50) / 2 \approx 50.323s≈(28.284+22.361+50)/2≈50.323
求出近似面积: \sqrt{s(s-a)(s-b)(s-c)} \approx \sqrt{10016.80} \approx 100.08s(s−a)(s−b)(s−c)≈10016.80≈100.08,故答案为 100100。
数据规模与约定
对于 100\%100% 的数据:每个点的 x, yx,y 坐标值一定在 [1, 200][1,200] 之内,均为整数;答案一定为正整数
C++ 中有一个函数叫做 sqrt
,这个函数定义在头文件 cmath
内。sqrt(x)
求 xx 的算术平方根。
四舍五入可以使用 round
函数。round
函数同样定义在 cmath
内。round(x)
求 xx 四舍五入后的值。
注意,round
函数的返回值不是整数,所以我们使用 static_cast<int> (x)
让他变成整数。