// हर हर महादेव using namespace std; #include #define int long long int int solve(vector> &a){ if(a.empty()){ return 0; } int n = a.size(); for(auto &[x,y] : a){ x = abs(x); y = abs(y); } sort(a.begin(),a.end(),[&](const auto &v1,const auto &v2){ auto [x1,y1] = v1; auto [x2,y2] = v2; if(x1*y2 != x2*y1){ return x1*y2 < x2*y1; } return x1*x1 + y1*y1 < x2*x2 + y2*y2; }); int ans = 1; for(int i = 1; i < n; i++){ auto [x1,y1] = a[i]; auto [x2,y2] = a[i-1]; if(x1*y2 != x2*y1){ ans++; } } return ans; } void testcase(){ int n; cin >> n; vector> a(n); for(int i = 0; i < n; i++){ cin >> a[i].first >> a[i].second; } bool sp = false; vector> p; vector> q; vector> r; vector> s; for(auto &[x,y] : a){ if(x == 0 && y == 0){ cout << "1\n"; return; } if(x >= 0){ if(y >= 0){ p.push_back({x,y}); } else{ q.push_back({x,y}); } } else{ if(y >= 0){ r.push_back({x,y}); } else{ s.push_back({x,y}); } } } cout << solve(p) + solve(q) + solve(r) + solve(s) << '\n'; } int32_t main(){ ios::sync_with_stdio(false); cin.tie(0); int tt = 1; cin >> tt; while(tt--){ testcase(); } return (0-0); }