#include <iostream>
using namespace std;
struct punkt
{
float x, y;
};
// Funkcja wczytująca punkt
punkt wczytaj_punkt(float x, float y)
{
punkt p;
p.x = x;
p.y = y;
return p;
}
// Funkcja sprawdzająca czy dwa punkty leżą po tej samej stronie prostej
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;
return (wartosc1 * wartosc2 >= 0);
}
int main()
{
// Współczynniki prostej
float A = 1;
float B = -1;
float C = 0;
// Wczytanie punktów
punkt P1 = wczytaj_punkt(1, 0);
punkt P2 = wczytaj_punkt(1, 2);
punkt P3 = wczytaj_punkt(-1, 0);
punkt P4 = wczytaj_punkt(2, 2.2);
// Sprawdzenie
bool para1 = po_tej_samej_stronie(P1, P2, A, B, C);
bool para2 = po_tej_samej_stronie(P3, P4, A, B, C);
if (para1 && para2)
cout << "punkty leza po tej samej stronie prostej" << endl;
else
cout << "punkty nie leza po tej samej stronie prostej" << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IHB1bmt0CnsKICAgIGZsb2F0IHgsIHk7Cn07CgovLyBGdW5rY2phIHdjenl0dWrEhWNhIHB1bmt0CnB1bmt0IHdjenl0YWpfcHVua3QoZmxvYXQgeCwgZmxvYXQgeSkKewogICAgcHVua3QgcDsKICAgIHAueCA9IHg7CiAgICBwLnkgPSB5OwogICAgcmV0dXJuIHA7Cn0KCi8vIEZ1bmtjamEgc3ByYXdkemFqxIVjYSBjenkgZHdhIHB1bmt0eSBsZcW8xIUgcG8gdGVqIHNhbWVqIHN0cm9uaWUgcHJvc3Rlagpib29sIHBvX3Rlal9zYW1lal9zdHJvbmllKHB1bmt0IHAxLCBwdW5rdCBwMiwgZmxvYXQgQSwgZmxvYXQgQiwgZmxvYXQgQykKewogICAgZmxvYXQgd2FydG9zYzEgPSBBICogcDEueCArIEIgKiBwMS55ICsgQzsKICAgIGZsb2F0IHdhcnRvc2MyID0gQSAqIHAyLnggKyBCICogcDIueSArIEM7CgogICAgcmV0dXJuICh3YXJ0b3NjMSAqIHdhcnRvc2MyID49IDApOwp9CgppbnQgbWFpbigpCnsKICAgIC8vIFdzcMOzxYJjenlubmlraSBwcm9zdGVqCiAgICBmbG9hdCBBID0gMTsKICAgIGZsb2F0IEIgPSAtMTsKICAgIGZsb2F0IEMgPSAwOwoKICAgIC8vIFdjenl0YW5pZSBwdW5rdMOzdwogICAgcHVua3QgUDEgPSB3Y3p5dGFqX3B1bmt0KDEsIDApOwogICAgcHVua3QgUDIgPSB3Y3p5dGFqX3B1bmt0KDEsIDIpOwogICAgcHVua3QgUDMgPSB3Y3p5dGFqX3B1bmt0KC0xLCAwKTsKICAgIHB1bmt0IFA0ID0gd2N6eXRhal9wdW5rdCgyLCAyLjIpOwoKICAgIC8vIFNwcmF3ZHplbmllCiAgICBib29sIHBhcmExID0gcG9fdGVqX3NhbWVqX3N0cm9uaWUoUDEsIFAyLCBBLCBCLCBDKTsKICAgIGJvb2wgcGFyYTIgPSBwb190ZWpfc2FtZWpfc3Ryb25pZShQMywgUDQsIEEsIEIsIEMpOwoKICAgIGlmIChwYXJhMSAmJiBwYXJhMikKICAgICAgICBjb3V0IDw8ICJwdW5rdHkgbGV6YSBwbyB0ZWogc2FtZWogc3Ryb25pZSBwcm9zdGVqIiA8PCBlbmRsOwogICAgZWxzZQogICAgICAgIGNvdXQgPDwgInB1bmt0eSBuaWUgbGV6YSBwbyB0ZWogc2FtZWogc3Ryb25pZSBwcm9zdGVqIiA8PCBlbmRsOwoKICAgIHJldHVybiAwOwp9