#pragma GCC target("avx2") #pragma GCC optimize("O3") #pragma GCC optimize("unroll-loops") //#pragma warning(disable : 4996) //#define ATCODER #ifdef ATCODER #include using namespace atcoder; #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #ifdef _MSC_VER #include"stdafx.h" #include #define __builtin_popcount __popcnt #define __builtin_popcountll __popcnt64 void debug_out() { cerr << endl; } template void debug_out(Head H, Tail... T) { cerr << " " << (H); debug_out(T...); } #define DEBUG(...) cerr << "[" << #__VA_ARGS__ << "]:", debug_out(__VA_ARGS__) #else #define DEBUG(...) 42 #endif #define ll long long #define REP(i, n) for (ll i = 0; i < (n); ++i) #define REPR(i, n) for (ll i = n - 1; i >= 0; --i) #define FOR(i, m, n) for (ll i = m; i < n; ++i) #define VSORT(v) sort(v.begin(), v.end()); #define VREVERSE(v) reverse(v.begin(), v.end()) #define print(x) cout << (x) << '\n' #define spa <<" "<< #define lb(v, n) lower_bound(v.begin(), v.end(), (n)) #define ub(v, n) upper_bound(v.begin(), v.end(), (n)) //#define int long long #define double long double #define all(x) (x).begin(), (x).end() #define print_space(v) REP(i, v.size()) cout << v[i] << " \n"[i==(int)v.size()-1] template inline void chmin(T1 & a, T2 b) { if (a > b) a = b; } template inline void chmax(T1& a, T2 b) { if (a < b) a = b; } typedef pair pii; typedef pair pll; std::random_device rd; std::mt19937 mt(rd()); constexpr ll MOD = 1e9 + 9; constexpr int MAX = 500050; const double pi = acos(-1); constexpr double EPS = 1e-8; constexpr ll LINF = 1e17 + 1; constexpr int INF = 1e9 + 1; using point = complex; void solve() { int N; cin >> N; vectorps; REP(i, N) { int x, y; cin >> x >> y; ps.push_back(point(x,y)); } vector>v; REP(i, N)FOR(j, i + 1, N) { double d = abs(ps[i] - ps[j]); v.push_back({ {i,j},d }); } using piid = pair; sort(all(v), [](piid &a, piid &b) { return a.second < b.second; }); setst; int ans = 0; for (auto p : v) { int a = p.first.first, b = p.first.second; if (st.count(a) || st.count(b))continue; if (a > b)swap(a, b); if (a == 0) { st.insert(b); ans++; } else { st.insert(a); st.insert(b); } } print(ans); } signed main() { cin.tie(0); ios::sync_with_stdio(false); //int q; cin >> q; while (q--) solve(); }