#include <iostream>
using namespace std;
struct Punkt {
double x, y;
};
double det(Punkt A, Punkt B, Punkt P) {
return (B.x - A.x) * (P.y - A.y) - (B.y - A.y) * (P.x - A.x);
}
Punkt czytaj_punkt() {
Punkt p;
cin >> p.x >> p.y;
return p;
}
void punkty_po_stronie(Punkt A, Punkt B, Punkt P) {
double d = det(A, B, P);
if (d > 0)
cout << "Pkt lezy po lewej stronie prostej" << endl;
else if (d < 0)
cout << "Pkt lezy po prawej stronie prostej" << endl;
else
cout << "Pkt lezy na prostej" << endl;
}
int main() {
Punkt A, B, P;
cout << "Podaj wspolrzedne punktu A (x y): ";
A = czytaj_punkt();
cout << "Podaj wspolrzedne punktu B (x y): ";
B = czytaj_punkt();
cout << "Podaj wspolrzedne punktu P (x y): ";
P = czytaj_punkt();
punkty_po_stronie(A, B, P);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IFB1bmt0IHsKICAgIGRvdWJsZSB4LCB5Owp9OwoKZG91YmxlIGRldChQdW5rdCBBLCBQdW5rdCBCLCBQdW5rdCBQKSB7CiAgICByZXR1cm4gKEIueCAtIEEueCkgKiAoUC55IC0gQS55KSAtIChCLnkgLSBBLnkpICogKFAueCAtIEEueCk7Cn0KClB1bmt0IGN6eXRhal9wdW5rdCgpIHsKICAgIFB1bmt0IHA7CiAgICBjaW4gPj4gcC54ID4+IHAueTsKICAgIHJldHVybiBwOwp9Cgp2b2lkIHB1bmt0eV9wb19zdHJvbmllKFB1bmt0IEEsIFB1bmt0IEIsIFB1bmt0IFApIHsKICAgIGRvdWJsZSBkID0gZGV0KEEsIEIsIFApOwoKICAgIGlmIChkID4gMCkKICAgICAgICBjb3V0IDw8ICJQa3QgbGV6eSBwbyBsZXdlaiBzdHJvbmllIHByb3N0ZWoiIDw8IGVuZGw7CiAgICBlbHNlIGlmIChkIDwgMCkKICAgICAgICBjb3V0IDw8ICJQa3QgbGV6eSBwbyBwcmF3ZWogc3Ryb25pZSBwcm9zdGVqIiA8PCBlbmRsOwogICAgZWxzZQogICAgICAgIGNvdXQgPDwgIlBrdCBsZXp5IG5hIHByb3N0ZWoiIDw8IGVuZGw7Cn0KCmludCBtYWluKCkgewogICAgUHVua3QgQSwgQiwgUDsKCiAgICBjb3V0IDw8ICJQb2RhaiB3c3BvbHJ6ZWRuZSBwdW5rdHUgQSAoeCB5KTogIjsKICAgIEEgPSBjenl0YWpfcHVua3QoKTsKCiAgICBjb3V0IDw8ICJQb2RhaiB3c3BvbHJ6ZWRuZSBwdW5rdHUgQiAoeCB5KTogIjsKICAgIEIgPSBjenl0YWpfcHVua3QoKTsKCiAgICBjb3V0IDw8ICJQb2RhaiB3c3BvbHJ6ZWRuZSBwdW5rdHUgUCAoeCB5KTogIjsKICAgIFAgPSBjenl0YWpfcHVua3QoKTsKCiAgICBwdW5rdHlfcG9fc3Ryb25pZShBLCBCLCBQKTsKCiAgICByZXR1cm4gMDsKfQ==