#include <iostream>
using namespace std;
struct punkt
{
float x, y;
};
// funkcja wczytująca współrzędne punktu
void wczytaj_punkt(punkt &p, float x, float y)
{
p.x = x;
p.y = y;
}
// funkcja sprawdzająca czy punkty są po tej samej stronie prostej
bool po_tej_samej_stronie(float A, float B, float C, punkt p1, punkt p2)
{
float W1 = A * p1.x + B * p1.y + C;
float W2 = A * p2.x + B * p2.y + C;
return (W1 * W2 > 0);
}
int main()
{
// ====== DANE ======
float A = 1, B = -1, C = 0; // prosta: x - y = 0
punkt P1, P2;
wczytaj_punkt(P1, 2, 1);
wczytaj_punkt(P2, 2, -1);
// ===================
if (po_tej_samej_stronie(A, B, C, P1, P2))
cout << "Punkty sa po tej samej stronie prostej." << endl;
else
cout << "Punkty NIE sa po tej samej stronie prostej." << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cnVjdCBwdW5rdAp7CiAgICBmbG9hdCB4LCB5Owp9OwoKLy8gZnVua2NqYSB3Y3p5dHVqxIVjYSB3c3DDs8WCcnrEmWRuZSBwdW5rdHUKdm9pZCB3Y3p5dGFqX3B1bmt0KHB1bmt0ICZwLCBmbG9hdCB4LCBmbG9hdCB5KQp7CiAgICBwLnggPSB4OwogICAgcC55ID0geTsKfQoKLy8gZnVua2NqYSBzcHJhd2R6YWrEhWNhIGN6eSBwdW5rdHkgc8SFIHBvIHRlaiBzYW1laiBzdHJvbmllIHByb3N0ZWoKYm9vbCBwb190ZWpfc2FtZWpfc3Ryb25pZShmbG9hdCBBLCBmbG9hdCBCLCBmbG9hdCBDLCBwdW5rdCBwMSwgcHVua3QgcDIpCnsKICAgIGZsb2F0IFcxID0gQSAqIHAxLnggKyBCICogcDEueSArIEM7CiAgICBmbG9hdCBXMiA9IEEgKiBwMi54ICsgQiAqIHAyLnkgKyBDOwoKICAgIHJldHVybiAoVzEgKiBXMiA+IDApOwp9CgppbnQgbWFpbigpCnsKICAgIC8vID09PT09PSBEQU5FID09PT09PQogICAgZmxvYXQgQSA9IDEsIEIgPSAtMSwgQyA9IDA7ICAgLy8gcHJvc3RhOiB4IC0geSA9IDAKCiAgICBwdW5rdCBQMSwgUDI7CgogICAgd2N6eXRhal9wdW5rdChQMSwgMiwgMSk7CiAgICB3Y3p5dGFqX3B1bmt0KFAyLCAyLCAtMSk7CiAgICAvLyA9PT09PT09PT09PT09PT09PT09CgogICAgaWYgKHBvX3Rlal9zYW1lal9zdHJvbmllKEEsIEIsIEMsIFAxLCBQMikpCiAgICAgICAgY291dCA8PCAiUHVua3R5IHNhIHBvIHRlaiBzYW1laiBzdHJvbmllIHByb3N0ZWouIiA8PCBlbmRsOwogICAgZWxzZQogICAgICAgIGNvdXQgPDwgIlB1bmt0eSBOSUUgc2EgcG8gdGVqIHNhbWVqIHN0cm9uaWUgcHJvc3Rlai4iIDw8IGVuZGw7CgogICAgcmV0dXJuIDA7Cn0=