#include <iostream>
using namespace std;
struct Punkt {
double x;
double 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 = czytaj_punkt(1,1);
Punkt B = czytaj_punkt(3,3);
Punkt P = czytaj_punkt(0,3);
punkty_po_stronie(A, B, P);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IFB1bmt0IHsKICAgIGRvdWJsZSB4OwogICAgZG91YmxlIHk7Cn07Cgpkb3VibGUgZGV0KFB1bmt0IEEsIFB1bmt0IEIsIFB1bmt0IFApIHsKICAgIHJldHVybiAoQi54IC0gQS54KSAqIChQLnkgLSBBLnkpIC0gKEIueSAtIEEueSkgKiAoUC54IC0gQS54KTsKfQoKUHVua3QgY3p5dGFqX3B1bmt0KGRvdWJsZSB4LCBkb3VibGUgeSkgewogICAgUHVua3QgcDsKICAgIHAueCA9IHg7CiAgICBwLnkgPSB5OwogICAgcmV0dXJuIHA7Cn0KCnZvaWQgcHVua3R5X3BvX3N0cm9uaWUoUHVua3QgQSwgUHVua3QgQiwgUHVua3QgUCkgewogICAgZG91YmxlIGQgPSBkZXQoQSwgQiwgUCk7CgogICAgaWYgKGQgPiAwKQogICAgICAgIGNvdXQgPDwgIlBrdC4gUCBsZXp5IHBvIGxld2VqIHN0cm9uaWUgcHJvc3RlaiIgPDwgZW5kbDsKICAgIGVsc2UgaWYgKGQgPCAwKQogICAgICAgIGNvdXQgPDwgIlBrdC4gUCBsZXp5IHBvIHByYXdlaiBzdHJvbmllIHByb3N0ZWoiIDw8IGVuZGw7CiAgICBlbHNlCiAgICAgICAgY291dCA8PCAiUGt0LiBQIGxlenkgbmEgcHJvc3RlaiIgPDwgZW5kbDsKfQoKaW50IG1haW4oKSB7CiAgICBQdW5rdCBBID0gY3p5dGFqX3B1bmt0KDEsMSk7CiAgICBQdW5rdCBCID0gY3p5dGFqX3B1bmt0KDMsMyk7CiAgICBQdW5rdCBQID0gY3p5dGFqX3B1bmt0KDAsMyk7CgogICAgcHVua3R5X3BvX3N0cm9uaWUoQSwgQiwgUCk7CgogICAgcmV0dXJuIDA7Cn0=