题意:给定三个点的坐标,求由这三个点构成的三角形面积

题解:直接求解会存在精度误差。由于题目保证是直角三角形,我们可以考虑用向量法,即叉乘公式求解。

当然,假设我们求出的两条直角边长度在没有开根号的情况下是x^2和y^2,那么我们可以选择将这两部分直接相乘再开根号可以有效避免误差。题解仅展示叉乘做法。

AcCode:

#include <bits/stdc++.h>
using namespace std;

int main() {
    int a,b,c,d,e,f;
    cin>>a>>b>>c>>d>>e>>f;
    int x=a-c,y=b-d;
    int xx=a-e,yy=b-f;
    int ans=abs(x*yy-xx*y)/2;
    cout<<ans;
}