#include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); int N; cin >> N; vector> XY(N); for(auto &[x,y] : XY) cin >> x >> y,x *= 2, y *= 2; map,map,long long>> M; for(int i=0; i x2) swap(x1,x2),swap(y1,y2); long long mx = (x1+x2)/2,my = (y1+y2)/2; if(x1 == x2) M[{mx,my}][{0,1}]++; else if(y1 == y2) M[{mx,my}][{1,0}]++; else{ long long dx = abs(x2-x1),dy = abs(y2-y1),g = gcd(dx,dy); M[{mx,my}][{(x2-x1)/g,(y2-y1)/g}]++; } } long long answer = 0; for(auto &[ig,V] : M){ for(auto &[k,v] : V){ auto &[x,y] = k; if(x < 0 || y == 0) continue; if(x == 0) answer += v*V[{1,0}]; else answer += v*V[{y,-x}]; } } cout << answer << endl; }