Quipex icon

833

Quipex | PRO | 03/06/17 03:37:21 PM UTC | 0 ⭐ | 359 👁️ | Never ⏰ | []
C++ |

1.39 KB

|

None

|

0 👍

/

0 👎

#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