#include <iostream>
using namespace std;
struct Punkt {
double x;
double y;
};
void czytaj_punkt(Punkt &p, double x, double y) {
p.x = x;
p.y = 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);
}
bool punkt_po_stronie(Punkt A, Punkt B, Punkt P) {
return det(A,B,P) < 0;
}
int main() {
Punkt A, B, P;
czytaj_punkt(A, 1, 1);
czytaj_punkt(B, 3, 3);
czytaj_punkt(P, 0, 1);
if(det(A,B,P) < 0)
cout << "Punkt P lezy po lewej stronie";
else
cout << "Punkt P lezy po prawej stronie";
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IFB1bmt0IHsKICAgIGRvdWJsZSB4OwogICAgZG91YmxlIHk7Cn07Cgp2b2lkIGN6eXRhal9wdW5rdChQdW5rdCAmcCwgZG91YmxlIHgsIGRvdWJsZSB5KSB7CiAgICBwLnggPSB4OwogICAgcC55ID0geTsKfQoKZG91YmxlIGRldChQdW5rdCBBLCBQdW5rdCBCLCBQdW5rdCBQKSB7CiAgICByZXR1cm4gKEIueCAtIEEueCkgKiAoUC55IC0gQS55KSAtIChCLnkgLSBBLnkpICogKFAueCAtIEEueCk7Cn0KCmJvb2wgcHVua3RfcG9fc3Ryb25pZShQdW5rdCBBLCBQdW5rdCBCLCBQdW5rdCBQKSB7CiAgICByZXR1cm4gZGV0KEEsQixQKSA8IDA7Cn0KCmludCBtYWluKCkgewogICAgUHVua3QgQSwgQiwgUDsKCiAgICBjenl0YWpfcHVua3QoQSwgMSwgMSk7CiAgICBjenl0YWpfcHVua3QoQiwgMywgMyk7CiAgICBjenl0YWpfcHVua3QoUCwgMCwgMSk7CgogICAgaWYoZGV0KEEsQixQKSA8IDApCiAgICAgICAgY291dCA8PCAiUHVua3QgUCBsZXp5IHBvIGxld2VqIHN0cm9uaWUiOwogICAgZWxzZQogICAgICAgIGNvdXQgPDwgIlB1bmt0IFAgbGV6eSBwbyBwcmF3ZWogc3Ryb25pZSI7CgogICAgcmV0dXJuIDA7Cn0=