Problem:
MathJax.Hub.Config({ tex2jax: { inlineMath: [["$","$"], ["\\(","\\)"]], processEscapes: true }});

凸？

平面上の異なる 4 点　$A (x_a, y_a)$, $B (x_b, y_b)$, $C (x_c, y_c)$, $D(x_d, y_d)$ の座標を読み込んで、それら 4 点を頂点とした四角形 $ABCD$ に凹みがなければ YES、凹みがあれば NO と出力するプログラムを作成してください。

凹みのある四角形とは図 1 のような四角形です。

Input

複数のデータセットが与えられます。各データセットの形式は以下のとおりです。

$x_a$,$y_a$,$x_b$,$y_b$,$x_c$,$y_c$,$x_d$,$y_d$

$x_a$, $y_a$, $x_b$, $y_b$, $x_c$, $y_c$, $x_d$, $y_d$ はそれぞれ -100 以上 100 以下であり、実数で与えられます。

1 直線上に 3 つ以上点が並ぶことはないものとします。また、入力順に点を結んでいけば、四角形になる順番に点の座標が入力されるものとします。（つまり、図 2 のような形になる順番で点が与えられることはありません。)

データセットの数は 100 を超えません。

Output

各データセットごとに、YES または NO を１行に出力します。

Sample Input

0.0,0.0,1.0,0.0,1.0,1.0,0.0,1.0
0.0,0.0,3.0,0.0,1.0,1.0,1.0,3.0

Output for the Sample Input

YES
NO

Solution in JAVA (judge verdict: Accepted)

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;

public class Main {
    static int MAX_INF = Integer.MAX_VALUE;
    
    public static void main(String[] args) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;
        String line;
        double xa, ya, xb, yb, xc, yc, xd, yd;
        while ((line = in.readLine()) != null) {
            st = new StringTokenizer(line, ",");
            xa = Double.parseDouble(st.nextToken());
            ya = Double.parseDouble(st.nextToken());
            xb = Double.parseDouble(st.nextToken());
            yb = Double.parseDouble(st.nextToken());
            xc = Double.parseDouble(st.nextToken());
            yc = Double.parseDouble(st.nextToken());
            xd = Double.parseDouble(st.nextToken());
            yd = Double.parseDouble(st.nextToken());
            
            double x1 = xb - xa, y1 = yb - ya,
            x2 = xc - xb, y2 = yc - yb, 
            x3 = xd - xc, y3 = yd - yc,
            x4 = xa - xd, y4 = ya - yd;
            
            xa = x1 * y2 - x2 * y1;
            xb = x2 * y3 - x3 * y2;
            xc = x3 * y4 - x4 * y3;
            xd = x4 * y1 - x1 * y4;
            
            if (xa * xb > 0 && xb * xc > 0 && xc * xd > 0 && xa * xd > 0) {
                System.out.println("YES");
            } else {
                System.out.println("NO");
            }
        }
    }
}