#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(double x, double y) {
Punkt p;
p.x = x;
p.y = y;
return p;
}
void punkty_po_stronie(Punkt A, Punkt B, Punkt P) {
double d = det(A, B, P);
if (d > 0)
cout << "Pkt. P lezy po lewej stronie prostej" << endl;
else if (d < 0)
cout << "Pkt. P lezy po prawej stronie prostej" << endl;
else
cout << "Pkt. P lezy na prostej" << endl;
}
int main() {
Punkt A, B, P;
A = czytaj_punkt(1,1);
B = czytaj_punkt(3,3);
P = czytaj_punkt(0,3);
punkty_po_stronie(A, B, P);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IFB1bmt0IHsKICAgIGRvdWJsZSB4LCB5Owp9OwoKZG91YmxlIGRldChQdW5rdCBBLCBQdW5rdCBCLCBQdW5rdCBQKSB7CiAgICByZXR1cm4gKEIueCAtIEEueCkgKiAoUC55IC0gQS55KSAtIChCLnkgLSBBLnkpICogKFAueCAtIEEueCk7Cn0KClB1bmt0IGN6eXRhal9wdW5rdChkb3VibGUgeCwgZG91YmxlIHkpIHsKICAgIFB1bmt0IHA7CiAgICBwLnggPSB4OwogICAgcC55ID0geTsKICAgIHJldHVybiBwOwp9Cgp2b2lkIHB1bmt0eV9wb19zdHJvbmllKFB1bmt0IEEsIFB1bmt0IEIsIFB1bmt0IFApIHsKICAgIGRvdWJsZSBkID0gZGV0KEEsIEIsIFApOwoKICAgIGlmIChkID4gMCkKICAgICAgICBjb3V0IDw8ICJQa3QuIFAgbGV6eSBwbyBsZXdlaiBzdHJvbmllIHByb3N0ZWoiIDw8IGVuZGw7CiAgICBlbHNlIGlmIChkIDwgMCkKICAgICAgICBjb3V0IDw8ICJQa3QuIFAgbGV6eSBwbyBwcmF3ZWogc3Ryb25pZSBwcm9zdGVqIiA8PCBlbmRsOwogICAgZWxzZQogICAgICAgIGNvdXQgPDwgIlBrdC4gUCBsZXp5IG5hIHByb3N0ZWoiIDw8IGVuZGw7Cn0KCmludCBtYWluKCkgewogICAgUHVua3QgQSwgQiwgUDsKCiAgICBBID0gY3p5dGFqX3B1bmt0KDEsMSk7CiAgICBCID0gY3p5dGFqX3B1bmt0KDMsMyk7CiAgICBQID0gY3p5dGFqX3B1bmt0KDAsMyk7CgogICAgcHVua3R5X3BvX3N0cm9uaWUoQSwgQiwgUCk7CgogICAgcmV0dXJuIDA7Cn0=