C++ アルゴリズムとデータ構造のライブラリ
#include "library/geometry/area_triangle.hpp"doubleは桁数表現11bitを除き、52bit程度の精度
18桁使うなら2で割らずlong longで返すこと
$O(1)$
double S = area_triangle(x1, y1, x2, y2, x3, y3);
#pragma once
template <typename T> double area_triangle(T x1, T y1, T x2, T y2, T x3, T y3) {
return abs((x2 - x1) * (y3 - y1) - (x3 - x1) * (y2 - y1)) / 2.0;
}#line 2 "library/geometry/area_triangle.hpp"
template <typename T> double area_triangle(T x1, T y1, T x2, T y2, T x3, T y3) {
return abs((x2 - x1) * (y3 - y1) - (x3 - x1) * (y2 - y1)) / 2.0;
}