首页 > 代码库 > UVA11524 - InCircle

UVA11524 - InCircle

给一个三角形,画出它的内接圆,然后圆与三角形的边会有交点,这些点分别把每条边分成两部分,这两部分的比例也分别给出,

内接圆的半径也知道,求三角形面积。


我的做法:


用海伦公式与半径,给出的比例,用三角形内心的性质及其三角形的面积联立方程


我的代码:


#include<iostream>
#include<map>
#include<string>
#include<cstring>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<queue>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
	int N;
	double s,a,b,c,r,n[10],m[10],x;
	cin>>N;
	while(N--)
	{
		cin>>r>>m[1]>>n[1]>>m[2]>>n[2]>>m[3]>>n[3];
		a=m[1]+n[1];
		b=n[1]+n[1]*n[2]/m[2];
		c=m[1]+m[1]*m[3]/n[3];
		x=2*r*sqrt((a+b+c)/(b+c-a)/(a+c-b)/(a+b-c));
		s=(a+b+c)*x*r/2;
		printf("%.4lf\n",s);
	}
}

Time limit: 2.000 seconds

Problem E
In-Circle
Input:
Standard Input

Output: Standard Output

 

In-circle of a triangle is the circlethat touches all the three sides of the triangle internally. The center of thein-circle of a triangle happens to be the common intersection point of thethree bisectors of the internal angles. In this problem you will not be askedto find the in-circle of a triangle, but will be asked to do the opposite!!

 
 

You can see in the figure above that the in-circle of triangle ABC touches thesides AB, BC and CA at point P, Q and R respectively and P, Q and R divides AB,BC and CA in ratio m1:n1, m2:n2 and m3:n3 respectively. Given these ratios andthe value of the radius of in-circle, you have to find the area of triangleABC.

 


Input

First line of the input filecontains an integer N (0<N<50001), which denotes how many input sets areto follow. The description of each set is given below.

 

Each set consists of four lines.The first line contains a floating-point number r (1<r<5000), whichdenotes the radius of the in-circle. Each of the next three lines contains two floating-pointnumbers, which denote the values of m1, n1, m2,n2, m3 and n3 (1<m1, n1,m2, n2, m3, n3<50000)respectively.

                                                           

Output

For each set ofinput produce one line of output. This line contains a floating-point numberthat denotes the area of the triangle ABC. This floating-point number shouldcontain four digits after the decimal point. Errors less than 5*10-3will be ignored. Use double-precision floating-point number for calculation.

 

SampleInput                              Output for Sample Input

2

140.9500536497

15.3010457320 550.3704847907

464.9681681852 65.9737378230

55.0132446384 10.7791711946

208.2835101182

145.7725891419 8.8264176452

7.6610997600 436.1911036207

483.6031801012 140.2797089713

400156.4075

908824.1322


Problemsetter: Shahriar Manzoor

Special Thanks: Mohammad Mahmudur Rahman

UVA11524 - InCircle