#include <iostream>
using namespace std;
void czytaj_punkt( double & x, double & y)
{
cout << "Podaj x: " ;
cin >> x;
cout << "Podaj y: " ;
cin >> y;
}
double det( double xA, double yA, double xB, double yB, double xP, double yP)
{
return ( xB - xA) * ( yP - yA) - ( yB - yA) * ( xP - xA) ;
}
bool punkty_po_stronie( double xA, double yA, double xB, double yB, double xP, double yP)
{
double d = det( xA, yA, xB, yB, xP, yP) ;
if ( d > 0 )
return true ; // punkt po lewej stronie
else
return false ; // punkt po prawej stronie lub na prostej
}
int main( )
{
double xA, yA, xB, yB, xP, yP;
cout << "Podaj wspolrzedne punktu A:" << endl;
czytaj_punkt( xA, yA) ;
cout << "Podaj wspolrzedne punktu B:" << endl;
czytaj_punkt( xB, yB) ;
cout << "Podaj wspolrzedne punktu P:" << endl;
czytaj_punkt( xP, yP) ;
if ( punkty_po_stronie( xA, yA, xB, yB, xP, yP) )
cout << "Punkt P lezy po lewej stronie" << endl;
else
cout << "Punkt P lezy po prawej stronie" << endl;
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdm9pZCBjenl0YWpfcHVua3QoZG91YmxlICZ4LCBkb3VibGUgJnkpCnsKICAgIGNvdXQgPDwgIlBvZGFqIHg6ICI7CiAgICBjaW4gPj4geDsKICAgIGNvdXQgPDwgIlBvZGFqIHk6ICI7CiAgICBjaW4gPj4geTsKfQoKZG91YmxlIGRldChkb3VibGUgeEEsIGRvdWJsZSB5QSwgZG91YmxlIHhCLCBkb3VibGUgeUIsIGRvdWJsZSB4UCwgZG91YmxlIHlQKQp7CiAgICByZXR1cm4gKHhCIC0geEEpICogKHlQIC0geUEpIC0gKHlCIC0geUEpICogKHhQIC0geEEpOwp9Cgpib29sIHB1bmt0eV9wb19zdHJvbmllKGRvdWJsZSB4QSwgZG91YmxlIHlBLCBkb3VibGUgeEIsIGRvdWJsZSB5QiwgZG91YmxlIHhQLCBkb3VibGUgeVApCnsKICAgIGRvdWJsZSBkID0gZGV0KHhBLCB5QSwgeEIsIHlCLCB4UCwgeVApOwoKICAgIGlmIChkID4gMCkKICAgICAgICByZXR1cm4gdHJ1ZTsgICAvLyBwdW5rdCBwbyBsZXdlaiBzdHJvbmllCiAgICBlbHNlCiAgICAgICAgcmV0dXJuIGZhbHNlOyAgLy8gcHVua3QgcG8gcHJhd2VqIHN0cm9uaWUgbHViIG5hIHByb3N0ZWoKfQoKaW50IG1haW4oKQp7CiAgICBkb3VibGUgeEEsIHlBLCB4QiwgeUIsIHhQLCB5UDsKCiAgICBjb3V0IDw8ICJQb2RhaiB3c3BvbHJ6ZWRuZSBwdW5rdHUgQToiIDw8IGVuZGw7CiAgICBjenl0YWpfcHVua3QoeEEsIHlBKTsKCiAgICBjb3V0IDw8ICJQb2RhaiB3c3BvbHJ6ZWRuZSBwdW5rdHUgQjoiIDw8IGVuZGw7CiAgICBjenl0YWpfcHVua3QoeEIsIHlCKTsKCiAgICBjb3V0IDw8ICJQb2RhaiB3c3BvbHJ6ZWRuZSBwdW5rdHUgUDoiIDw8IGVuZGw7CiAgICBjenl0YWpfcHVua3QoeFAsIHlQKTsKCiAgICBpZiAocHVua3R5X3BvX3N0cm9uaWUoeEEsIHlBLCB4QiwgeUIsIHhQLCB5UCkpCiAgICAgICAgY291dCA8PCAiUHVua3QgUCBsZXp5IHBvIGxld2VqIHN0cm9uaWUiIDw8IGVuZGw7CiAgICBlbHNlCiAgICAgICAgY291dCA8PCAiUHVua3QgUCBsZXp5IHBvIHByYXdlaiBzdHJvbmllIiA8PCBlbmRsOwoKICAgIHJldHVybiAwOwp9