using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Prepisivaci
{
    class Program
    {
        public struct Pozicija
        {
            public int x, y;
        }
        static double Udaljenost(Pozicija a, Pozicija b)
        {
            return Math.Sqrt(Math.Pow(a.x - b.x, 2) + Math.Pow(a.y - b.y, 2));
        }
        static void Main(string[] args)
        {
            int N = int.Parse(Console.ReadLine());
            Pozicija[] p = new Pozicija[N];

            int kom = 0;//broj komisija
            for (int i = 0; i < p.Length; i++)
            {
                string[] s = Console.ReadLine().Split();
                p[i].x = int.Parse(s[0]);
                p[i].y = int.Parse(s[1]);
            }
            #region ne za sad
            /*Pozicija maxx = p[0];
            Pozicija maxy = p[0];
            Pozicija minx = p[0];
            Pozicija miny = p[0];
            for (int i = 1; i < N; i++)
            {
                if (p[i].x>maxx.x)
                {
                    maxx = p[i];
                }
                if (p[i].y<maxy.y)
                {
                    maxy = p[i];
                }
                if (p[i].x<minx.x)
                {
                    minx = p[i];
                }
                if (p[i].y<miny.y)
                {
                    miny = p[i];
                }
            }*/
            #endregion
            for (int i = 0; i < N-3; i++)
            {
                for (int j = i+1; j < N-2; j++)
                {
                    for (int m = j+1; m < N-1; m++)
                    {
                        for (int n = m+1; n < N; n++)
                        {

                            if (p[i].x/p[j].y==p[j].x/p[j].y && p[m].x/p[m].y==p[n].x/p[n].y)
                            {
                                double max = Math.Max(Udaljenost(p[i], p[j]), Udaljenost(p[m], p[n]));
                                double min = Math.Min(Udaljenost(p[i], p[j]), Udaljenost(p[m], p[n]));
                                if (max/min==2)
                                {
                                    kom++;
                                }

                            }
                            if (p[i].x/p[i].y==p[n].x/p[n].y && p[m].x/p[m].y==p[j].x/p[j].y)
                            {
                                double max = Math.Max(Udaljenost(p[i], p[n]), Udaljenost(p[m], p[j]));
                                double min = Math.Min(Udaljenost(p[i], p[n]), Udaljenost(p[m], p[j]));
                                if (max/min==2)
                                {
                                    kom++;
                                }
                            }
                            if (p[i].x / p[i].y == p[m].x / p[m].y && p[n].x / p[n].y == p[j].x / p[j].y)
                            {
                                double max = Math.Max(Udaljenost(p[i], p[m]), Udaljenost(p[n], p[j]));
                                double min = Math.Min(Udaljenost(p[i], p[m]), Udaljenost(p[n], p[j]));
                                if (max/min==2)
                                {
                                    kom++;
                                }
                            }
                        }
                    }
                }
            }
            Console.WriteLine(kom);
        }
    }
}