Saturday 21 March 2009

HOJ ( acm.hdu.edu.cn ) 1071





#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int N;
double a,b,c,d,e,x1,x2,x3,y1,y2,y3,area;
for(cin>>N;N--;)
{
cin>>x1>>y1>>x2>>y2>>x3>>y3;
if(x2==x3)
{
area=0.0;
goto done;
}
a=((x1-x2)/(x2-x3)*(y2-y3)-(y1-y2))/((x1-x2)*(x2+x3)-(x1*x1-x2*x2));
b=(y1-y2-a*(x1*x1-x2*x2))/(x1-x2);
c=y1-b*x1-a*x1*x1;
d=(y2-y3)/(x2-x3);
e=y2-d*x2;
area=a/3*pow(x3,3)+b/2*(x3*x3)+c*x3-a/3*pow(x2,3)-b/2*(x2*x2)-c*x2-(d/2*x3*x3+e*x3-d/2*x2*x2-e*x2);
done:
cout.precision(2);
cout<<fixed<<area<<endl;
}
return 0;
}

No comments:

Post a Comment