View Code of Problem 2595

#include<stdio.h>
#include<math.h>
#include<string.h>
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
	double a[102],b[102];
	int num;
	int i,j;
	double  x1,y1,x2,y2,x3,y3,x0,y0;
	double mj,mj1,mj2,mj3,mj4;
	int ans=0;

	scanf("%d",&num);

	for(i=0;i<num;i++)
	scanf("%lf%lf",&a[i],&b[i]);


	scanf("%lf%lf",&x0,&y0);
	scanf("%lf%lf",&x1,&y1);
	scanf("%lf%lf",&x2,&y2);
	scanf("%lf%lf",&x3,&y3);

	mj=abs(1.0*0.5*(1.0*(x0*y1-x1*y0)+1.0*(x1*y2-x2*y1)+1.0*(x2*y3-x3*y2)+1.0*(x3*y0-x0*y3)));
	
	
	for(i=0;i<num;i++)
	{
	mj1=abs(0.5*((x0*y1-x1*y0)+(x1*b[i]-a[i]*y1)+(a[i]*y0-x0*b[i])));
	mj2=abs(0.5*((x1*y2-x2*y1)+(x2*b[i]-a[i]*y2)+(a[i]*y1-x1*b[i])));
	mj3=abs(0.5*((x2*y3-x3*y2)+(x3*b[i]-a[i]*y3)+(a[i]*y2-x2*b[i])));
	mj4=abs(0.5*((x3*y0-x0*y3)+(x0*b[i]-a[i]*y0)+(a[i]*y3-x3*b[i])));

	if((mj1+mj2+mj3+mj4-mj)<0.0000001&&(mj1+mj2+mj3+mj4-mj)>-0.0000001)
		ans++;



	}
	
	printf("%d\n",ans);


	// 0.5 0.5 0.5 1.5 1.5 1.5 1.5 0
	




}

return 0;

}


Double click to view unformatted code.


Back to problem 2595