#include <iostream>
#include <vector>

using namespace std;

vector<double> simlu_eq(int N, vector<vector<double>> M){
    int i, j, k, n;
    double pivot, mul;

    for (auto x:M){for(auto y:x){ cout << y << " ";}cout << endl;}


    for (i = 0; i < N; ++i){
        pivot = M[i][i];
        for (j = 0; j < N + 1; ++j){
            M[i][j] = (1 / pivot) * M[i][j];
        }

        for (auto x:M){for(auto y:x){ cout << y << " ";}cout << endl;}

        for (k = i + 1; k < N; ++k){
            mul = M[k][i];
            for (n = i; n < N + 1; ++n){
                M[k][n] = M[k][n] - mul * M[i][n];
            }
        }
    }

     for (auto x:M){for(auto y:x){ cout << y << " ";}cout << endl;}


     for (i = N -1; i > 0; --i){
         for (k = i -1; k >= 0; --k){
             mul = M[k][i];
             for (n = i; n < N + 1; ++n){
                 M[k][n] = M[k][n] - mul * M[i][n];
             }
         }
     }

     for (auto x:M){for(auto y:x){ cout << y << " ";}cout << endl;}


    vector<double> res;
    for (i = 0; i < N; ++i){
        res.push_back(M[i][N]);
    }

    cout << res[0] << " " << res[1] << " " << res[2] << endl;

    return res;
}


int main(){
    vector<double> a(2), b(2), c(2), p(2), ab(2), ac(2), ap(2);
    while(scanf("%lf %lf %lf %lf %lf %lf %lf %lf", &a[0], &a[1], &b[0], &b[1], &c[0], &c[1], &p[0], &p[1])+1){

        ab[0] = b[0] - a[0];
        ab[1] = b[1] - a[1];
        ac[0] = c[0] - a[0];
        ac[1] = c[1] - a[1];
        ap[0] = p[0] - a[0];
        ap[1] = p[1] - a[1];


    vector<vector<double>>M;
    M = vector<vector<double>>(2, vector<double>(3));
    M[0][0] = ab[0];  M[0][1] = ac[0];  M[0][2] = ap[0];
    M[1][0] = ab[1];  M[1][1] = ac[1];  M[1][2] = ap[1];
    vector<double> w = simlu_eq(2, M);

    if (w[0] > 0 && w[1] > 0 && w[0] + w[1] < 1){
        cout << "YES" << endl;
    }else{
        cout << "NO" << endl;
    }
    }
}