Pagini recente » Cod sursa (job #2358514) | Cod sursa (job #1232113) | Cod sursa (job #1188803) | Cod sursa (job #131706) | Cod sursa (job #1081325)
#include<stdio.h>
#include<algorithm>
using namespace std;
int p[2][1013],m,n,i,j,k,nr;
double v[1000013];
inline double panta(int x1,int y1, int x2, int y2)
{
if(x1==x2)return 1<<30;
return(double)((double)(y2-y1)/(double)(x2-x1));
}
inline bool eq(double a, double b)
{
double x=(a>b?a-b:b-a);
return x<0.0000000001;
}
int main()
{
freopen("trapez.in","r",stdin);
freopen("trapez.out","w",stdout);
scanf("%d",&n);
for(i=0;i<n;++i)scanf("%d%d",&p[0][i],&p[1][i]);
m=0;
for(i=0;i<n-1;++i)
for(j=i+1;j<n;++j)
v[m++]=panta(p[0][i],p[1][i],p[0][j],p[1][j]);
sort(v,v+m);
v[m]=-1;
i=nr=0;
while(i<m)
{
j=i;
while(eq(v[j],v[j+1]))++j;
k=j-i+1;
nr=nr+(k-1)*k/2;
i=j+1;
}
printf("%d",nr);
return 0;
}