#include #define int long long #define vec vector #define forn(i, n) for(int i = 0;i>(a)[i] #define write(a) forn(i, (a).size()) cout<<(a)[i] << " "; cout << "\n"; using namespace std; typedef pair pii; int mod = 1e9+7; vec used; vec > g; void dfs(int v){ if(used[v]) return; used[v] = true; for(int u: g[v]) dfs(u); } struct st{ int x, y, num; }; bool comp1(st a, st b){ return a.x < b.x; } bool comp2(st a, st b){ return a.y < b.y; } void solve(){ int n; cin>>n; vec points(n); for(int i = 0; i> points[i].x >> points[i].y; points[i].num = i; } g.resize(n); sort(all(points), comp1); for(int i = 0;i