#include using namespace std; #define p_b push_back #define fi first #define se second using pii = pair; using ll = long long; const ll INF = 1e18; bool intersect(paira, pairb) { auto [s, r1] = a; auto [x1, y1] = s; auto [s1, r2] = b; auto [x2, y2] = s1; return (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) == (r1+r2)*(r1+r2); } void dfs(int u,vector> &g, vector&clr, int &cnt1, int &cnt2) { if(cnt1!=-1) { if(clr[u]==1) cnt1++; else cnt2++; } else clr[u]=-1; for(int i:g[u]) { if(clr[i]==clr[u]) { cnt1=-1; cnt2=-1; } else if(!clr[i]) { clr[i] = 1+clr[u]%2; dfs(i, g, clr, cnt1, cnt2); } } if(cnt1==-1) clr[u]=-1; } void solve() { // freopen("1.in", "r", stdin); // freopen("1.out", "w", stdout); int n; cin>>n; vector, int>>a(n); for(int i=0;i>a[i].fi.fi>>a[i].fi.se>>a[i].se; } vector>g(n); for(int i = 0;iclr(n); int x=0, y=0; for(int i=0;i> t; while (t--) { solve(); } }