#include <iostream>
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;
}
Comments