#include <iostream>

using namespace std;

struct takmicar {
    int x;
    int y;
};

struct prava {
   double a;
   double b;
};

bool daLiSuDvePraveParalelne(prava prava1, prava prava2) {
    return (-(prava1.a / prava1.b) == -(prava2.a / prava2.b));
}

prava izracunajPravuNaOsnovuKoordinataTakmicara(takmicar t1, takmicar t2) {
    prava rezultat;
    
    rezultat.a = t2.y - t1.y;
    rezultat.b = t1.x - t2.x;
    
    return rezultat;
}

int main()
{
    int brojTakmicara;
    
    cin >> brojTakmicara;
    
    int koordinataXTakmicara[brojTakmicara];
    int koordinataYTakmicara[brojTakmicara];
    
    takmicar takmicari[brojTakmicara];
    
    for (int i = 0; i < brojTakmicara; i++) {
        cin >> takmicari[i].x;
        cin >> takmicari[i].y;
    }
    
    // nema ih dovoljno da bi napravili trapez
    if (brojTakmicara < 4) {
        cout << 0;
        return 0;
    }
    
    int brojSumnjivihCetvorki = 0;
    for (int i =0 ; i < brojTakmicara - 3; i++) {
        for (int j = 1; j < brojTakmicara - 2; j++) {
            for (int k = 2; k < brojTakmicara - 1; k++) {
                for (int l = 3; l < brojTakmicara; l++) {
                    prava prava1, prava2;
                    takmicar takmicar1 = takmicari[i];
                    takmicar takmicar2 = takmicari[j];
                    takmicar takmicar3 = takmicari[k];
                    takmicar takmicar4 = takmicari[l];
                    
                    bool praveSuParalelne;
                    //prva mogucnost 1-2 3-4
                    
                    prava1 = izracunajPravuNaOsnovuKoordinataTakmicara(takmicar1, takmicar2);
                    prava2 = izracunajPravuNaOsnovuKoordinataTakmicara(takmicar3, takmicar4);
                    
                    praveSuParalelne = daLiSuDvePraveParalelne(prava1, prava2);
                    
                    if(praveSuParalelne) {
                        brojSumnjivihCetvorki++;
                        continue;
                    }
                    
                    //druga mogucnost 1-3 2-4
                    
                    prava1 = izracunajPravuNaOsnovuKoordinataTakmicara(takmicar1, takmicar3);
                    prava2 = izracunajPravuNaOsnovuKoordinataTakmicara(takmicar2, takmicar4);
                    
                    praveSuParalelne = daLiSuDvePraveParalelne(prava1, prava2);
                    
                    if(praveSuParalelne) {
                        brojSumnjivihCetvorki++;
                        continue;
                    }
                    //treca mogucnost 1-4 2-3
                    
                    prava1 = izracunajPravuNaOsnovuKoordinataTakmicara(takmicar1, takmicar4);
                    prava2 = izracunajPravuNaOsnovuKoordinataTakmicara(takmicar2, takmicar3);
                    
                    praveSuParalelne = daLiSuDvePraveParalelne(prava1, prava2);
                
                    if(praveSuParalelne) {
                        brojSumnjivihCetvorki++;
                    }
                }
            }
        }
    }
    
    cout <<  brojSumnjivihCetvorki;

    return 0;
}