#include<bits/stdc++.h>
#define ll long long
// check whether 2 lines are orthogonal or not
// input: line 1 represented by 2 points (x1, y1) and (x2, y2)
// and line 2 represented by 2 points (x3, y3) and (x4, y4)
// output: true or false
template <typename T> bool checkOrtho(T x1, T y1, T x2, T y2,
T x3, T y3, T x4, T y4) {
T m1, m2;
// Both lines have infinite slope
if (x2 - x1 == 0 && x4 - x3 == 0)
return false;
// Only line 1 has infinite slope
else if (x2 - x1 == 0) {
m2 = (y4 - y3) / (x4 - x3);
if (m2 == 0)
return true;
else
return false;
}
// Only line 2 has infinite slope
else if (x4 - x3 == 0) {
m1 = (y2 - y1) / (x2 - x1);
if (m1 == 0)
return true;
else
return false;
}
else {
// Find slopes of the lines
m1 = (y2 - y1) / (x2 - x1);
m2 = (y4 - y3) / (x4 - x3);
// Check if their product is -1
if (m1 * m2 == -1)
return true;
else
return false;
}
}