#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	cin >> n;
	int a[n][2];
	for(int i=0;i<n;i++) cin >> a[i][0] >> a[i][1];
	int count=0;
	for(int i=0;i<n-1;i++){
		for(int j=i+1;j<n;j++){
			if(abs(a[i][1]-a[j][1])<=abs(a[i][0]-a[j][0])) count++;
		}
	}
	cout << count << endl;
}
#include <iostream>
#include<bits/stdc++.h>
using namespace std;
#define ull signed long long int
#define lli long long int  
#define ll  long long 
#define all(v) v.begin(), v.end()
#define allr(v) v.rbegin(),v.rend() //reverse
#define vl   vector<lli>
#define fro(i,a,b) for(int i=a;i<b;i++)
#define mii unordered_map<ll,ll>
#define pb push_back
double pi = 2*acos(0.0);
const int INF = 1e9 + 7;
//lli power(lli x, lli y,lli p){lli res = 1; x = x % p; if (x == 0) return 0;
//while (y > 0){if (y & 1)res = (res*x) % p;  y = y>>1;  } return res;  }
 


void func(vector<lli>v,lli k,lli n,lli &ans,lli h1,lli h2,lli cnt,vector<vector<bool>>&dp){
   
   if(n<0)
    return;
   if(h1>=k&&h2>=k){
      ans=min(ans,cnt);
      return;
   }
   if(dp[h1][h2]==true)
    return;

   
   func(v,k,n-1,ans,h1+v[n],h2,cnt+1,dp);
   dp[h1+v[n]][h2]=true;
   
   func(v,k,n-1,ans,h1,h2+v[n],cnt+1,dp);
   dp[h1][h2+v[n]]=true;
   
   func(v,k,n-1,ans,h1,h2,cnt,dp);
   dp[h1][h2]=true;
  



}

void WetPitch()
{ 
  lli n;
  cin>>n;
  double x[n];double y[n];
  fro(i,0,n){
    cin>>x[i]>>y[i];
  }

  lli ans=0;

  for(int i=0;i<n;i++){
    for(int j=i+1;j<n;j++){
      if((y[j]-y[i])/(x[j]-x[i])>=-1&&(y[j]-y[i])/(x[j]-x[i])<=1)
        ans++;
    }
  }

  cout<<ans<<endl;

}
 
 
signed main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
    lli tst;
    tst=1; 
    //cin>>tst;int p=1;
    while(tst--)
    {
      WetPitch();
    }
    return 0;
 } 