Description
Note: The point P1 in the picture is the vertex of the parabola.

Input
Each test case contains three intersectant points which shows in the picture, they are given in the order of P1, P2, P3. Each point is described by two floating-point numbers X and Y(0.0<=X,Y<=1000.0).
Output
Sample Input
2 5.000000 5.000000 0.000000 0.000000 10.000000 0.000000 10.000000 10.000000 1.000000 1.000000 14.000000 8.222222
Sample Output
33.33 40.69
就是个数学题,给你三个点,然后求出抛物线和直线的参数,之后积分
这里要注意下,抛物线的系数a是不可为0的,还有这题不用考虑直线斜率无穷的情况
下面的是代码
#include<stdio.h>
#include<string.h>
double x1,y1,x2,y2,x3,y3;
int main()
{
int t;
while(~scanf("%d",&t))
{
while(t--)
{
scanf("%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3);
double a,b,c,k,t;
k=(y3-y2)/(x3-x2);
t=(x3*y2-x2*y3)/(x3-x2);
if(y3!=y2)
a=(y3-y2)/((x3*x3-x2*x2)+2*x1*(x2-x3));
else
a=(y2-y1)/((x1-x2)*(x1-x2));
b=-2*a*x1;
c=y2-a*x2*x2+2*a*x1*x2;
double area=(a*x3*x3*x3/3)-(a*x2*x2*x2/3)+((b-k)*x3*x3/2)-((b-k)*x2*x2/2)+(c-t)*(x3-x2);
printf("%.2f\n",area);
}
}
return 0;
}