Pagini recente » Cod sursa (job #128522) | Cod sursa (job #1842869) | Cod sursa (job #2046974) | Cod sursa (job #1346633) | Cod sursa (job #801876)
Cod sursa(job #801876)
#include<cstdio>
#include<cmath>
#include<algorithm>
#define EPSILON 1e-14
int x[1005],y[1005];
double m[1000005];
int nm;
double slope (int i,int j)
{
double d1=y[i]-y[j];
double d2=x[i]-x[j];
return d1/d2;
}
bool eq (double a,double b)
{
if(isinf (a))
return isinf (b);
return fabs (a-b)<EPSILON;
}
int main()
{
freopen ("trapez.in","r",stdin);
freopen ("trapez.out","w",stdout);
int n;
scanf ("%d",&n);
for(int i=0;i<n;i++)
scanf ("%d%d",x+i,y+i);
for(int i=0;i<n;i++)
for(int j=i+1;j<n;j++)
m[nm++]=slope (i,j);
std::sort (m,m+nm);
int r=0;
for(int i=0;i<nm;i++){
int cm=i;
while(i<nm&&eq (m[i+1],m[cm]))
i++;
r+=(i-cm+1)*(i-cm)/2;
}
printf ("%d",r);
return 0;
}