#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(string nazwa) {
Punkt p;
cout << "Podaj wspolrzedne punktu " << nazwa << " (x y): ";
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;
A = czytaj_punkt("A");
B = czytaj_punkt("B");
P = czytaj_punkt("P");
punkty_po_stronie(A, B, P);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IFB1bmt0IHsKICAgIGRvdWJsZSB4LCB5Owp9OwoKZG91YmxlIGRldChQdW5rdCBBLCBQdW5rdCBCLCBQdW5rdCBQKSB7CiAgICByZXR1cm4gKEIueCAtIEEueCkgKiAoUC55IC0gQS55KSAtIChCLnkgLSBBLnkpICogKFAueCAtIEEueCk7Cn0KClB1bmt0IGN6eXRhal9wdW5rdChzdHJpbmcgbmF6d2EpIHsKICAgIFB1bmt0IHA7CiAgICBjb3V0IDw8ICJQb2RhaiB3c3BvbHJ6ZWRuZSBwdW5rdHUgIiA8PCBuYXp3YSA8PCAiICh4IHkpOiAiOwogICAgY2luID4+IHAueCA+PiBwLnk7CiAgICByZXR1cm4gcDsKfQoKdm9pZCBwdW5rdHlfcG9fc3Ryb25pZShQdW5rdCBBLCBQdW5rdCBCLCBQdW5rdCBQKSB7CiAgICBkb3VibGUgZCA9IGRldChBLCBCLCBQKTsKCiAgICBpZiAoZCA+IDApCiAgICAgICAgY291dCA8PCAiUGt0IGxlenkgcG8gbGV3ZWogc3Ryb25pZSBwcm9zdGVqLiIgPDwgZW5kbDsKICAgIGVsc2UgaWYgKGQgPCAwKQogICAgICAgIGNvdXQgPDwgIlBrdCBsZXp5IHBvIHByYXdlaiBzdHJvbmllIHByb3N0ZWouIiA8PCBlbmRsOwogICAgZWxzZQogICAgICAgIGNvdXQgPDwgIlBrdCBsZXp5IG5hIHByb3N0ZWouIiA8PCBlbmRsOwp9CgppbnQgbWFpbigpIHsKICAgIFB1bmt0IEEsIEIsIFA7CgogICAgQSA9IGN6eXRhal9wdW5rdCgiQSIpOwogICAgQiA9IGN6eXRhal9wdW5rdCgiQiIpOwogICAgUCA9IGN6eXRhal9wdW5rdCgiUCIpOwoKICAgIHB1bmt0eV9wb19zdHJvbmllKEEsIEIsIFApOwoKICAgIHJldHVybiAwOwp9