# Geometry# Area Calculation# Coordinate Geometry

d055 - 11437 - Triangle Fun

🔗 前往 ZeroJudge 原題

題目描述

題目給定三角形 ABC 三個頂點的座標,要求計算由 AD, BE, CF 三條線段交點組成的三角形 PQR 的面積,其中 D, E, F 分別是 BC, CA, AB 的三等分點 (CD=2BD, AE=2CE, BF=2AF)。

解題思路

根據題目描述,三角形 PQR 的面積是三角形 ABC 面積的 1/7。因此,只需要計算出三角形 ABC 的面積,然後除以 7,再四捨五入到整數即可。三角形 ABC 的面積可以使用行列式公式計算。

複雜度分析

  • 時間複雜度: O(1)
  • 空間複雜度: O(1)

程式碼

#include <iostream>
#include <cmath>
using namespace std;
int main() {
  	int n;
  	double x1, y1, x2, y2, x3, y3;
  	cin>>n;
    while(n--){
    	cin>>x1>>y1>>x2>>y2>>x3>>y3;
   		double area=abs(x1*y2+x2*y3+x3*y1-x2*y1-x3*y2-x1*y3)/14.0;
    	int area2=area;
    	if((int)(area*10)%10>=5)
   	    ++area2;
 	    cout<<area2<<'\n';
    }
}

Discussion