#include #include #include using namespace std ; typedef long long ll ; vector > pts ; ll n, r ; vector dists ; void check(ll x, ll y, ll denom) { dists.clear() ; for (int i=0; i (1LL<<31) || abs(dy) > (1LL<<31)) cout << "Potential for overflow" << endl ; dists.push_back(dx*dx+dy*dy) ; } sort(dists.begin(), dists.end()) ; ll t = unique(dists.begin(), dists.end()) - dists.begin() ; r = min(t, r) ; } int main() { cin >> n ; for (int i=0; i> x >> y ; pts.push_back(make_pair(2*x, 2*y)) ; } r = n - 1 ; if (r == 0) r = 1 ; for (int a=0; a> 1 ; ll c2 = (dx2 * (pts[d].first + pts[c].first) + dy2 * (pts[d].second + pts[c].second)) >> 1 ; ll xx = c1 * dy2 - c2 * dy1 ; ll yy = dx1 * c2 - dx2 * c1 ; ll denom = dx1 * dy2 - dx2 * dy1 ; if (denom == 0) // Parallel Lines, Blondie, 1978 continue ; check(xx, yy, denom) ; } } cout << r << endl ; }