View Code of Problem 2595

import java.util.*;
public class Main {
	public static void main(String[] args) {
		Scanner in =new Scanner(System.in);
		int t =in.nextInt();
		for(int i = 0;i<t;i++) {
			int n =in.nextInt();
			int[] x =new int[n];
			int[] y =new int[n];
			for(int j =0;j<n;j++) {
				x[j]=in.nextInt();
				y[j]=in.nextInt();
			}
			int x1 = in.nextInt();
			int y1 = in.nextInt();
			int x2 = in.nextInt();
			int y2 = in.nextInt();
			int x3 = in.nextInt();
			int y3 = in.nextInt();
			int x4 = in.nextInt();
			int y4 = in.nextInt();
			
			double line14 = Math.sqrt((x4-x1)*(x4-x1)+(y4-y1)*(y4-y1));
			double line12 = Math.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));	
			double line23 = Math.sqrt((x3-x2)*(x3-x2)+(y3-y2)*(y3-y2));	
			double line34 = Math.sqrt((x4-x3)*(x4-x3)+(y4-y3)*(y4-y3));	
			
			double m = line14*line12;
			int count=0;
			for(int j =0;j<n;j++) {
				double linea4 = Math.sqrt((x[j]-x4)*(x[j]-x4)+(y[j]-y4)*(y[j]-y4));
				double linea3 = Math.sqrt((x[j]-x3)*(x[j]-x3)+(y[j]-y3)*(y[j]-y3));
				double linea2 = Math.sqrt((x[j]-x2)*(x[j]-x2)+(y[j]-y2)*(y[j]-y2));
				double linea1 = Math.sqrt((x[j]-x1)*(x[j]-x1)+(y[j]-y1)*(y[j]-y1));
				double sum=0;
				double a = line14;double b = linea1;double c = linea4;
				double s = Math.sqrt((a+b+c)*(a+b-c)*(a+c-b)*(b+c-a))/4;
				sum+=s;
				a = line12;b = linea1;c = linea2;
				s = Math.sqrt((a+b+c)*(a+b-c)*(a+c-b)*(b+c-a))/4;
				sum+=s;
				a = line23;b = linea2;c = linea3;
				s = Math.sqrt((a+b+c)*(a+b-c)*(a+c-b)*(b+c-a))/4;
				sum+=s;
				a = line34;b = linea3;c = linea4;
				s = Math.sqrt((a+b+c)*(a+b-c)*(a+c-b)*(b+c-a))/4;
				sum+=s;
				if (Math.abs(sum-m)<0.01) {
					count++;
				}
			}
			System.out.println(count);
		}
	}
}

Double click to view unformatted code.


Back to problem 2595