#include <bits/stdc++.h>
using namespace std;
int n,x[100005],y[100005],kvadranti[100005],levo,dole,gore,desno,slope,ypresek,xpresek;
bool plusX,minusX,plusY,minusY,resio=false;
long long sol;
///Funkcija koja pronalazi kvadrant tacke
int kvadrant(int x, int y){
    bool levo,dole;
    if(x<0)levo=true;
    else levo=false;
    if(y<0)dole=true;
    else dole=false;
    if(!levo and !dole)return 1;
    if(levo and !dole)return 2;
    if(levo and dole)return 3;
    if(!levo and dole)return 4;
}
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cin >> n;
    ///Ako su i X i Y koordinate jednake nuli, povecavamo resenje
    for(int i=1; i<=n; i++){
        cin >> x[i] >> y[i];
        if(x[i]==0 and y[i]==0)sol++;
    }
    ///Ako je za neki par tacaka razlika koordinata jednaka nuli, povecavamo resenje
    for(int i=1; i<=n; i++){
        for(int j=i+1; j<=n; j++){
            if((x[i]+x[j])+(y[i]+y[j])==0){
                sol++;
            }
        }
    }
    ///Pronalazimo kvadrant za svaku od tacaka
    for(int i=1; i<=n; i++){
        kvadranti[i]=kvadrant(x[i],y[i]);
        if(kvadranti[i]<3)gore++;
        else dole++;
        if(kvadranti[i]==2 or kvadranti[i]==3)levo++;
        else desno++;
    }
    if(levo==3 or desno==3 or dole==3 or gore==3){
        cout << sol << endl;
        return 0;
    }
    else if(dole==0 or gore==0 or levo==0 or desno==0){
        cout << sol << endl;
        return 0;
    }
    bool istiX,istiY;
    for(int i=1; i<=n; i++){
        for(int j=i+1; j<=n; j++){
            istiX,istiY=false;
            if(kvadranti[i]==kvadranti[j])continue;
            if(x[j]==x[i]){
                if(x>0)plusX=true;
                else minusX=true;
                istiX=true;
            }
            if(y[j]==y[i]){
                if(y>0)plusY=true;
                else minusY=true;
                istiY=true;
            }
            if(istiX and istiY)continue;
            int s=x[j]-x[i];
            slope=(y[j]-y[i])/s;
            if(slope==0)slope=1;
            ypresek=y[i]-slope*x[i];
            xpresek=-ypresek/slope;
            if(xpresek>0)plusX=true;
            else minusX=true;
            if(ypresek>0)plusY=true;
            else minusY=true;
            //cout << xpresek << " " << ypresek << endl;
        }
    }
    if(plusX and plusY and minusX and minusY)sol++;
    cout << sol << endl;
    return 0;
}