#include <iostream>
using namespace std;
struct punkt
{
float x, y;
};
void wczytaj_punkt(punkt &p, float x, float y)
{
p.x = x;
p.y = y;
}
bool po_tej_samej_stronie(punkt p1, punkt p2, float A, float B, float C)
{
float wartosc1 = A * p1.x + B * p1.y + C;
float wartosc2 = A * p2.x + B * p2.y + C;
// Punkty są po tej samej stronie,
// jeśli iloczyn wartości jest dodatni
if (wartosc1 * wartosc2 > 0)
return true;
else
return false;
}
int main()
{
punkt P1, P2;
// Dane punktów
wczytaj_punkt(P1, 1, 0);
wczytaj_punkt(P2, 1, 2);
float A = 1;
float B = -1;
float C = 0;
if (po_tej_samej_stronie(P1, P2, A, B, C))
cout << "punkty leza po tej samej stronie prostej" << endl;
else
cout << "punkty nie leza po tej samej stronie prostej" << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cnVjdCBwdW5rdAp7CiAgICBmbG9hdCB4LCB5Owp9OwoKdm9pZCB3Y3p5dGFqX3B1bmt0KHB1bmt0ICZwLCBmbG9hdCB4LCBmbG9hdCB5KQp7CiAgICBwLnggPSB4OwogICAgcC55ID0geTsKfQoKYm9vbCBwb190ZWpfc2FtZWpfc3Ryb25pZShwdW5rdCBwMSwgcHVua3QgcDIsIGZsb2F0IEEsIGZsb2F0IEIsIGZsb2F0IEMpCnsKICAgIGZsb2F0IHdhcnRvc2MxID0gQSAqIHAxLnggKyBCICogcDEueSArIEM7CiAgICBmbG9hdCB3YXJ0b3NjMiA9IEEgKiBwMi54ICsgQiAqIHAyLnkgKyBDOwoKICAgIC8vIFB1bmt0eSBzxIUgcG8gdGVqIHNhbWVqIHN0cm9uaWUsCiAgICAvLyBqZcWbbGkgaWxvY3p5biB3YXJ0b8WbY2kgamVzdCBkb2RhdG5pCiAgICBpZiAod2FydG9zYzEgKiB3YXJ0b3NjMiA+IDApCiAgICAgICAgcmV0dXJuIHRydWU7CiAgICBlbHNlCiAgICAgICAgcmV0dXJuIGZhbHNlOwp9CgppbnQgbWFpbigpCnsKICAgIHB1bmt0IFAxLCBQMjsKCiAgICAvLyBEYW5lIHB1bmt0w7N3CiAgICB3Y3p5dGFqX3B1bmt0KFAxLCAxLCAwKTsKICAgIHdjenl0YWpfcHVua3QoUDIsIDEsIDIpOwoKICAgIGZsb2F0IEEgPSAxOwogICAgZmxvYXQgQiA9IC0xOwogICAgZmxvYXQgQyA9IDA7CgogICAgaWYgKHBvX3Rlal9zYW1lal9zdHJvbmllKFAxLCBQMiwgQSwgQiwgQykpCiAgICAgICAgY291dCA8PCAicHVua3R5IGxlemEgcG8gdGVqIHNhbWVqIHN0cm9uaWUgcHJvc3RlaiIgPDwgZW5kbDsKICAgIGVsc2UKICAgICAgICBjb3V0IDw8ICJwdW5rdHkgbmllIGxlemEgcG8gdGVqIHNhbWVqIHN0cm9uaWUgcHJvc3RlaiIgPDwgZW5kbDsKCiAgICByZXR1cm4gMDsKfQ==