#include <iostream>
#include <math.h>
using namespace std;

const double e= 1e-9;

struct tacka{

int x;
int y;

};

bool prep(tacka a1, tacka a2, tacka b1, tacka b2)//prva osnovica a1, a2, druga osnovica b1, b2;
{
    if(abs((a1.y-a2.y)*(b1.x-b2.x) - (a1.x-a2.x)*(b1.y-b2.y)) < e)
    {
        //cout << "Paralelne su" << endl;
        double ad= sqrt((a1.x-a2.x)*(a1.x-a2.x)+(a1.y-a2.y)*(a1.y-a2.y));
        double bd= sqrt((b1.x-b2.x)*(b1.x-b2.x)+(b1.y-b2.y)*(b1.y-b2.y));

        if(fabs(ad-2*bd)>e && fabs(bd-2*ad)>e)
        {
        //cout << "Nije duplo duza" << endl;
            return false;
        }
        else
            return true;
    }
    else
        return false;
}
int main()
{
    int n;
    cin >> n;

    int br=0;
    tacka tacke[n];

    for(int i=0; i<n; i++)
    {
        cin >> tacke[i].x;
        cin >> tacke[i].y;
    }

   /* for(int i=0; i<n; i++)
    {
        clog << tacke[i].x << " ";
        clog << tacke[i].y << endl;
    }
*/
    for(int i1=0; i1<n-3; i1++)
    {
         for(int i2=i1+1; i2<n-2; i2++)
         {
             for(int i3=i2+1; i3<n-1; i3++)
             {
                 for(int i4=i3+1; i4<n; i4++)
                 {
                    //cout << "i1= " << i1 << " i2= "<< i2 << " i3= " << i3 << " i4= " << i4 << endl;
                    if(prep(tacke[i1],tacke[i2], tacke[i3], tacke[i4]) ||
                       prep(tacke[i2],tacke[i3], tacke[i4], tacke[i1]) ||
                       prep(tacke[i1],tacke[i3], tacke[i2], tacke[i4]))
                    {
                        br++;
                    }


                 }
             }

         }
    }
    cout << br;

    return 0;
}