该题用的知识是:如果点在三角形内,则这个点为顶点的三个角之和为360度。
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
double x1,Y1,x2,y2,x3,y3,x,y;
double length( double a1,double b1,double a2,double b2 )
{
return ( a1-a2 )*( a1-a2 )+( b1-b2 )*( b1-b2 ) ;
}
double area( double a1,double b1,double a2,double b2,double a3,double b3 )
{
double c1,c2,c3,p;
c1=length( a1,b1,a2,b2 );
c2=length( a1,b1,a3,b3 );
c3=length( a3,b3,a2,b2 );
double t=sqrt( c2*c3 );
return acos( (c2+c3-c1)/( 2*t ) );
}
bool judge( )
{
double s1,s2,s3,s4;
s2=area( x1,Y1,x2,y2,x,y );
s3=area( x1,Y1,x3,y3,x,y );
s4=area( x2,y2,x3,y3,x,y );
double t=( s2+s3+s4 );
// printf( "%lf\n",t );
// printf( "%lf\n",acos( -1 ) );
if( fabs( 2*acos( -1 )-t )<=1.0e-8 )
return true;
return false ;
}
int main()
{
while( scanf( "%lf%lf%lf%lf%lf%lf%lf%lf",&x1,&Y1,&x2,&y2,&x3,&y3,&x,&y )==8 )
{
if( judge( ) )
printf( "Die\n" );
else printf( "Live\n" );
}
}