Cod sursa(job #130919)
#include <fstream.h>
#include <math.h>
ifstream fin ("trapez.in");
ofstream fout ("trapez.out");
double x[1005],y[1005];
double m[1000005];
int n;
long nr,num;
void citire()
{
fin>>n;
for (int i=0;i<n;i++)
fin>>x[i]>>y[i];
fin.close();
}
void bule()
{
}
void panta ()
{
long ox=0,oy=0;
for (int i=0;i<n-1;i++)
for (int j=i+1;j<n;j++)
if (x[i]==x[j])
ox++;
else
if (y[i]==y[j])
oy++;
else
m[num++]=(y[i]-y[j])/(x[i]-x[j]);
nr+=ox*(ox-1)/2;
nr+=oy*(oy-1)/2;
for (int k=0;k<num;k++)
if (m[k]!=-10000)
{
int nur=1;
for (int h=k+1;h<num;h++)
if (fabs(m[k]-m[h])<0.000001)
{
nur++;
m[h]=-10000;
}
nr+=nur*(nur-1)/2;
}
}
int main ()
{
citire();
panta();
fout<<nr<<"\n";
fout.close();
return 0;
}