# Geometry# Math# Area Calculation

d199 - 矩形之內接三角形面積

🔗 前往 ZeroJudge 原題

題目描述

題目給定一個矩形ABCD,以及三個三角形△ABE、△ECF、△ADF的面積。要求計算三角形△AEF的面積。輸入為三個整數,分別代表這三個三角形的面積。

解題思路

設△ABE的面積為S1,△ECF的面積為S2,△ADF的面積為S3,△AEF的面積為S4。設AB = a, BC = b, AD = b, CD = a。 則 S1 = 0.5 * a * BE, S2 = 0.5 * (a - CF) * (b - EC), S3 = 0.5 * b * DF。 令 BE = x, EC = y, DF = z, CF = w。 則 S1 = 0.5 * a * x, S2 = 0.5 * (a - w) * y, S3 = 0.5 * b * z。 由於 BC = x + y = b, CD = w + CF = a, 因此 CF = a - w。 矩形面積 = S1 + S2 + S3 + S4 = a * b。 S4 = a * b - S1 - S2 - S3。 已知 S1, S2, S3,需要求 S4。 根據題目條件,可以推導出矩形面積的邊長關係,並利用海龍公式計算三角形面積。 令 p = S1, q = S2, r = S3。 矩形面積 = S1 + S2 + S3 + S4 S4 = sqrt((p+q+r)(p+q+r) - 4p*r)

複雜度分析

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

程式碼

#include <stdio.h>
#include <math.h> 
int main(){   
    long long int p, q, r;   
    while(scanf("%lld %lld %lld",&p,&q,&r)>0){
   		printf("%.0f\n",sqrt((p+q+r)*(p+q+r)-4*p*r));
	}
    return 0;   
}

Discussion