I♥TLE

Java、オンラインジャッジなど

0012-A Point in a Triangle

問題(外部リンク)

A Point in a Triangle | Aizu Online Judge

実装の概要

今回はあまり計算式とかを考えずにシンプルに済ませたかったので、java.awt.Polygonクラスを使用しました。これを使えば、三角形に限らず任意の多角形について同様に解くことができます。

public class Main {
 
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
 
        while(true){
            String tmpStr = br.readLine();
 
            if(tmpStr == null){
                break;
            }
 
            String[] tmpArray = tmpStr.split(" ");
            int[] input = new int[8];

            for(int i = 0; i < 8; i++){
                input[i] = (int)(Double.parseDouble(tmpArray[i])*1000);
            }
 
            int[] x = {input[0],input[2],input[4]};
            int[] y = {input[1],input[3],input[5]};
 
            Polygon triangle = new Polygon(x, y, 3);
 
            if(triangle.contains(new Point(input[6],input[7]))){
                System.out.println("YES");
            }
            else{
                System.out.println("NO");
            }
        }
    }
}