#include #define endl '\n' #define fi first #define se second using namespace std; const int INF=2e9; const int MAXN=1e5+5; const double EPS=0.000001; mt19937 mt(123); int perm[MAXN]; int n; pair lines[MAXN]; bool eq(double a,double b) { return (abs(a-b) inter(pair a,pair b) { double x=(b.se-a.se)/(a.fi-b.fi); if(!eq(x,round(x))) return {INF,INF}; double y=a.fi*x+a.se; if(!eq(y,round(y))) return {INF,INF}; return {round(x), round(y)}; } bool ison(pair p,int ind) { if(eq(lines[ind].fi*p.fi+lines[ind].se, p.se)) return 1; return 0; } int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); freopen("intersection.in","r",stdin); freopen("intersection.out","w",stdout); cin>>n; for(int i=0;i>x1>>y1>>x2>>y2; lines[i].fi=((double)y2-y1)/((double)x2-x1); lines[i].se=(double)y1-lines[i].fi*x1;//cout<, int> m; for(int i=0;i=n/4-1) { cout< l; for(int i=0;i