#include using namespace std; int main() { long long ax, ay, bx, by, cx, cy, dx, dy; double urav1, urav2; cin >> ax >> ay >> bx >> by >> cx >> cy >> dx >> dy; urav1 = (by-ay)*dx+(ax-bx)*dy+(ay*bx-ax*by); urav2 = (by-ay)*cx+(ax-bx)*cy+(ay*bx-ax*by); if ((urav1 >= 0 && urav2 >= 0)|| (urav1 <= 0 && urav2 <= 0)) { //cout << "urav1=" << urav1 <<";urav2="<< urav2 << endl; }else{ //разные знаки - не в пределах треугольника cout << "Out"; return 0; } urav1 = (by-cy)*dx+(cx-bx)*dy+(cy*bx-cx*by); urav2 = (by-cy)*ax+(cx-bx)*ay+(cy*bx-cx*by); if ((urav1 >= 0 && urav2 >= 0)|| (urav1 <= 0 && urav2 <= 0)) { //cout << "urav1=" << urav1 <<";urav2="<< urav2 << endl; }else{ //разные знаки - не в пределах треугольника cout << "Out"; return 0; } urav1 = (cy-ay)*dx+(ax-cx)*dy+(ay*cx-ax*cy); urav2 = (cy-ay)*bx+(ax-cx)*by+(ay*cx-ax*cy); if ((urav1 >= 0 && urav2 >= 0)|| (urav1 <= 0 && urav2 <= 0)) { //cout << "urav1=" << urav1 <<";urav2="<< urav2 << endl; cout << "In"; return 0; }else{ //разные знаки - не в пределах треугольника cout << "Out"; return 0; } return 0; }