#include #include using namespace std; struct Point { double x; double y; }; double det(const Point &A, const Point &B) { return A.x * B.y - B.x * A.y; } void intersection(const Point &A, const Point &B, const Point &C, const Point &D) { const Point p = {B.x - A.x, B.y - A.y}; const Point q = {D.x - C.x, D.y - C.y}; const Point PQ = {C.x - A.x, C.y - A.y}; const double det_pq = det(p, q); const double det_PQq = det(PQ, q); if (det_pq == 0 && det_PQq == 0) { cout << "Poklapaju se" << endl; } else if (det_pq == 0) { cout << "Paralelne su" << endl; } else { double tp = det_PQq / det_pq; const Point X = {p.x * tp + A.x, p.y * tp + A.y}; cout << "Presecna tacka je: [" << X.x << ", " << X.y << "]" << endl; } } int main(int argc, const char *argv[]) { Point A, B, C, D; cin >> A.x >> A.y; cin >> B.x >> B.y; cin >> C.x >> C.y; cin >> D.x >> D.y; intersection(A, B, C, D); return 0; }