#include <iostream>
using namespace std;
struct Punkt {
double x, y;
};
// funkcja licząca wyznacznik
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);
}
// funkcja "czytająca" punkt (tutaj przypisujemy dane z zadania)
Punkt czytaj_punkt(double x, double y) {
Punkt p;
p.x = x;
p.y = y;
return p;
}
// funkcja sprawdzająca po której stronie leży punkt
void punkt_po_stronie(Punkt A, Punkt B, Punkt P) {
double wynik = det(A, B, P);
if (wynik > 0)
cout << "Punkt P lezy po lewej stronie";
else
cout << "Punkt P lezy po prawej stronie";
}
int main() {
Punkt A = czytaj_punkt(1, 1);
Punkt B = czytaj_punkt(3, 3);
Punkt P = czytaj_punkt(0, 3);
punkt_po_stronie(A, B, P);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IFB1bmt0IHsKICAgIGRvdWJsZSB4LCB5Owp9OwoKLy8gZnVua2NqYSBsaWN6xIVjYSB3eXpuYWN6bmlrCmRvdWJsZSBkZXQoUHVua3QgQSwgUHVua3QgQiwgUHVua3QgUCkgewogICAgcmV0dXJuIChCLnggLSBBLngpICogKFAueSAtIEEueSkgLSAoQi55IC0gQS55KSAqIChQLnggLSBBLngpOwp9CgovLyBmdW5rY2phICJjenl0YWrEhWNhIiBwdW5rdCAodHV0YWogcHJ6eXBpc3VqZW15IGRhbmUgeiB6YWRhbmlhKQpQdW5rdCBjenl0YWpfcHVua3QoZG91YmxlIHgsIGRvdWJsZSB5KSB7CiAgICBQdW5rdCBwOwogICAgcC54ID0geDsKICAgIHAueSA9IHk7CiAgICByZXR1cm4gcDsKfQoKLy8gZnVua2NqYSBzcHJhd2R6YWrEhWNhIHBvIGt0w7NyZWogc3Ryb25pZSBsZcW8eSBwdW5rdAp2b2lkIHB1bmt0X3BvX3N0cm9uaWUoUHVua3QgQSwgUHVua3QgQiwgUHVua3QgUCkgewogICAgZG91YmxlIHd5bmlrID0gZGV0KEEsIEIsIFApOwoKICAgIGlmICh3eW5payA+IDApCiAgICAgICAgY291dCA8PCAiUHVua3QgUCBsZXp5IHBvIGxld2VqIHN0cm9uaWUiOwogICAgZWxzZQogICAgICAgIGNvdXQgPDwgIlB1bmt0IFAgbGV6eSBwbyBwcmF3ZWogc3Ryb25pZSI7Cn0KCmludCBtYWluKCkgewoKICAgIFB1bmt0IEEgPSBjenl0YWpfcHVua3QoMSwgMSk7CiAgICBQdW5rdCBCID0gY3p5dGFqX3B1bmt0KDMsIDMpOwogICAgUHVua3QgUCA9IGN6eXRhal9wdW5rdCgwLCAzKTsKCiAgICBwdW5rdF9wb19zdHJvbmllKEEsIEIsIFApOwoKICAgIHJldHVybiAwOwp9